// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #include #include "notifications/policies/CallNotificationPolicy.hpp" #include "notifications/policies/SMSNotificationPolicy.hpp" #include "notifications/policies/NotificationsListPolicy.hpp" using namespace notifications; TEST_CASE("Connected Mode notifications - calls policy test") { CallNotificationPolicy callPolicy; callPolicy.updateCurrentCall(sys::phone_modes::PhoneMode::Connected); REQUIRE(callPolicy.isPopupAllowed()); REQUIRE(callPolicy.isRingtoneAllowed()); } TEST_CASE("Connected Mode notifications - sms policy test") { SMSNotificationPolicy callPolicy; callPolicy.updateCurrentSMS(sys::phone_modes::PhoneMode::Connected); REQUIRE(callPolicy.isRingtoneAllowed()); } TEST_CASE("Connected Mode notifications - list policy test") { NotificationsListPolicy listPolicy; auto phoneLocked = true; auto notificationsWhenLocked = true; listPolicy.updateCurrentList(sys::phone_modes::PhoneMode::Connected, phoneLocked, notificationsWhenLocked); REQUIRE(listPolicy.updateListAllowed()); REQUIRE(listPolicy.showListWhenLocked()); phoneLocked = true; notificationsWhenLocked = false; listPolicy.updateCurrentList(sys::phone_modes::PhoneMode::Connected, phoneLocked, notificationsWhenLocked); REQUIRE(listPolicy.updateListAllowed()); REQUIRE(listPolicy.showListWhenLocked()); phoneLocked = false; notificationsWhenLocked = false; listPolicy.updateCurrentList(sys::phone_modes::PhoneMode::Connected, phoneLocked, notificationsWhenLocked); REQUIRE(listPolicy.updateListAllowed()); REQUIRE(listPolicy.showListWhenLocked()); phoneLocked = false; notificationsWhenLocked = true; listPolicy.updateCurrentList(sys::phone_modes::PhoneMode::Connected, phoneLocked, notificationsWhenLocked); REQUIRE(listPolicy.updateListAllowed()); REQUIRE(listPolicy.showListWhenLocked()); } TEST_CASE("DoNotDisturb Mode notifications - calls policy test") { CallNotificationPolicy callPolicy; callPolicy.updateCurrentCall(sys::phone_modes::PhoneMode::DoNotDisturb); REQUIRE(!callPolicy.isPopupAllowed()); REQUIRE(!callPolicy.isRingtoneAllowed()); SECTION("Number in/not in Favourites") { auto numberInFavourites = true; auto callsFromFavsAllowed = true; callPolicy.numberCheck(callsFromFavsAllowed, numberInFavourites); REQUIRE(callPolicy.isPopupAllowed()); REQUIRE(callPolicy.isRingtoneAllowed()); numberInFavourites = true; callsFromFavsAllowed = false; callPolicy.numberCheck(callsFromFavsAllowed, numberInFavourites); REQUIRE(!callPolicy.isPopupAllowed()); REQUIRE(!callPolicy.isRingtoneAllowed()); numberInFavourites = false; callsFromFavsAllowed = true; callPolicy.numberCheck(callsFromFavsAllowed, numberInFavourites); REQUIRE(!callPolicy.isPopupAllowed()); REQUIRE(!callPolicy.isRingtoneAllowed()); numberInFavourites = false; callsFromFavsAllowed = false; callPolicy.numberCheck(callsFromFavsAllowed, numberInFavourites); REQUIRE(!callPolicy.isPopupAllowed()); REQUIRE(!callPolicy.isRingtoneAllowed()); } } TEST_CASE("DoNotDisturb Mode notifications - sms policy test") { SMSNotificationPolicy callPolicy; callPolicy.updateCurrentSMS(sys::phone_modes::PhoneMode::DoNotDisturb); REQUIRE(!callPolicy.isRingtoneAllowed()); } TEST_CASE("DoNotDisturb Mode notifications - list policy test") { NotificationsListPolicy listPolicy; auto phoneLocked = true; auto notificationsWhenLocked = true; listPolicy.updateCurrentList(sys::phone_modes::PhoneMode::DoNotDisturb, phoneLocked, notificationsWhenLocked); REQUIRE(listPolicy.updateListAllowed()); REQUIRE(listPolicy.showListWhenLocked()); phoneLocked = true; notificationsWhenLocked = false; listPolicy.updateCurrentList(sys::phone_modes::PhoneMode::DoNotDisturb, phoneLocked, notificationsWhenLocked); REQUIRE(!listPolicy.updateListAllowed()); REQUIRE(!listPolicy.showListWhenLocked()); phoneLocked = false; notificationsWhenLocked = false; listPolicy.updateCurrentList(sys::phone_modes::PhoneMode::DoNotDisturb, phoneLocked, notificationsWhenLocked); REQUIRE(listPolicy.updateListAllowed()); REQUIRE(!listPolicy.showListWhenLocked()); phoneLocked = false; notificationsWhenLocked = true; listPolicy.updateCurrentList(sys::phone_modes::PhoneMode::DoNotDisturb, phoneLocked, notificationsWhenLocked); REQUIRE(listPolicy.updateListAllowed()); REQUIRE(listPolicy.showListWhenLocked()); } TEST_CASE("Offline Mode notifications - sms policy test") { SMSNotificationPolicy callPolicy; callPolicy.updateCurrentSMS(sys::phone_modes::PhoneMode::Offline); REQUIRE(callPolicy.isRingtoneAllowed()); } TEST_CASE("Offline Mode notifications - calls policy test") { CallNotificationPolicy callPolicy; callPolicy.updateCurrentCall(sys::phone_modes::PhoneMode::Offline); REQUIRE(!callPolicy.isPopupAllowed()); REQUIRE(!callPolicy.isRingtoneAllowed()); }