aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.c5
-rw-r--r--src/service.vala10
-rw-r--r--tests/CMakeLists.txt4
-rw-r--r--tests/notifications-test.cc41
4 files changed, 45 insertions, 15 deletions
diff --git a/src/main.c b/src/main.c
index 01cadf1..11eaa06 100644
--- a/src/main.c
+++ b/src/main.c
@@ -49,6 +49,7 @@ on_bus_acquired(GDBusConnection *connection,
IndicatorSoundOptions * options = NULL;
VolumeControlPulse * volume = NULL;
AccountsServiceUser * accounts = NULL;
+ VolumeWarning * warning = NULL;
if (g_strcmp0("lightdm", g_get_user_name()) == 0) {
@@ -60,13 +61,15 @@ on_bus_acquired(GDBusConnection *connection,
options = indicator_sound_options_gsettings_new();
volume = volume_control_pulse_new(options);
+ warning = volume_warning_new(options);
- service = indicator_sound_service_new (playerlist, volume, accounts, options);
+ service = indicator_sound_service_new (playerlist, volume, accounts, options, warning);
g_clear_object(&playerlist);
g_clear_object(&options);
g_clear_object(&volume);
g_clear_object(&accounts);
+ g_clear_object(&warning);
}
int
diff --git a/src/service.vala b/src/service.vala
index c94deb2..ed0fc74 100644
--- a/src/service.vala
+++ b/src/service.vala
@@ -27,9 +27,10 @@ public class IndicatorSound.Service: Object {
*/
VolumeControl.Volume _pre_warn_volume = null;
- public Service (MediaPlayerList playerlist, VolumeControl volume, AccountsServiceUser? accounts, Options options) {
+ public Service (MediaPlayerList playerlist, VolumeControl volume, AccountsServiceUser? accounts, Options options, VolumeWarning volume_warning) {
_options = options;
+ _volume_warning = volume_warning;
try {
bus = Bus.get_sync(GLib.BusType.SESSION);
@@ -43,8 +44,8 @@ public class IndicatorSound.Service: Object {
warn_notification.set_hint ("x-canonical-non-shaped-icon", "true");
warn_notification.set_hint ("x-canonical-snap-decisions", "true");
warn_notification.set_hint ("x-canonical-private-affirmative-tint", "true");
- warn_notification.closed.connect((n) => {
- n.clear_actions();
+ warn_notification.closed.connect((n) => {
+ n.clear_actions();
waiting_user_approve_warn=false;
increment_volume_sync_action();
});
@@ -208,7 +209,8 @@ public class IndicatorSound.Service: Object {
bool export_to_accounts_service = false;
private Notify.Notification info_notification;
private Notify.Notification warn_notification;
- private Options _options = null;
+ private Options _options;
+ private VolumeWarning _volume_warning;
const double volume_step_percentage = 0.06;
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index c11e288..7099d20 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -79,6 +79,10 @@ vala_add(vala-mocks
volume-control-mock.vala
)
+vala_add(vala-mocks
+ volume-warning-mock.vala
+)
+
vala_finish(vala-mocks
SOURCES
vala_mocks_VALA_SOURCES
diff --git a/tests/notifications-test.cc b/tests/notifications-test.cc
index 26864cd..ec9d915 100644
--- a/tests/notifications-test.cc
+++ b/tests/notifications-test.cc
@@ -137,9 +137,22 @@ class NotificationsTest : public ::testing::Test
return volumeControl;
}
- std::shared_ptr<IndicatorSoundService> standardService (std::shared_ptr<VolumeControl> volumeControl, std::shared_ptr<MediaPlayerList> playerList, const std::shared_ptr<IndicatorSoundOptions>& options) {
+ std::shared_ptr<VolumeWarning> volumeWarningMock (const std::shared_ptr<IndicatorSoundOptions>& optionsMock) {
+ auto volumeWarning = std::shared_ptr<VolumeWarning>(
+ VOLUME_WARNING(volume_warning_mock_new(optionsMock.get())),
+ [](VolumeWarning * warning){
+ g_clear_object(&warning);
+ });
+ return volumeWarning;
+ }
+
+ std::shared_ptr<IndicatorSoundService> standardService (
+ const std::shared_ptr<VolumeControl>& volumeControl,
+ const std::shared_ptr<MediaPlayerList>& playerList,
+ const std::shared_ptr<IndicatorSoundOptions>& options,
+ const std::shared_ptr<VolumeWarning>& warning) {
auto soundService = std::shared_ptr<IndicatorSoundService>(
- indicator_sound_service_new(playerList.get(), volumeControl.get(), nullptr, options.get()),
+ indicator_sound_service_new(playerList.get(), volumeControl.get(), nullptr, options.get(), warning.get()),
[](IndicatorSoundService * service){
g_clear_object(&service);
});
@@ -179,7 +192,8 @@ class NotificationsTest : public ::testing::Test
TEST_F(NotificationsTest, BasicObject) {
auto options = optionsMock();
auto volumeControl = volumeControlMock(options);
- auto soundService = standardService(volumeControl, playerListMock(), options);
+ auto volumeWarning = volumeWarningMock(options);
+ auto soundService = standardService(volumeControl, playerListMock(), options, volumeWarning);
/* Give some time settle */
loop(50);
@@ -190,7 +204,8 @@ TEST_F(NotificationsTest, BasicObject) {
TEST_F(NotificationsTest, VolumeChanges) {
auto options = optionsMock();
auto volumeControl = volumeControlMock(options);
- auto soundService = standardService(volumeControl, playerListMock(), options);
+ auto volumeWarning = volumeWarningMock(options);
+ auto soundService = standardService(volumeControl, playerListMock(), options, volumeWarning);
/* Set a volume */
notifications->clearNotifications();
@@ -230,7 +245,8 @@ TEST_F(NotificationsTest, VolumeChanges) {
TEST_F(NotificationsTest, StreamChanges) {
auto options = optionsMock();
auto volumeControl = volumeControlMock(options);
- auto soundService = standardService(volumeControl, playerListMock(), options);
+ auto volumeWarning = volumeWarningMock(options);
+ auto soundService = standardService(volumeControl, playerListMock(), options, volumeWarning);
/* Set a volume */
notifications->clearNotifications();
@@ -269,7 +285,8 @@ TEST_F(NotificationsTest, StreamChanges) {
TEST_F(NotificationsTest, IconTesting) {
auto options = optionsMock();
auto volumeControl = volumeControlMock(options);
- auto soundService = standardService(volumeControl, playerListMock(), options);
+ auto volumeWarning = volumeWarningMock(options);
+ auto soundService = standardService(volumeControl, playerListMock(), options, volumeWarning);
/* Set an initial volume */
notifications->clearNotifications();
@@ -304,7 +321,8 @@ TEST_F(NotificationsTest, IconTesting) {
TEST_F(NotificationsTest, ServerRestart) {
auto options = optionsMock();
auto volumeControl = volumeControlMock(options);
- auto soundService = standardService(volumeControl, playerListMock(), options);
+ auto volumeWarning = volumeWarningMock(options);
+ auto soundService = standardService(volumeControl, playerListMock(), options, volumeWarning);
/* Set a volume */
notifications->clearNotifications();
@@ -352,7 +370,8 @@ TEST_F(NotificationsTest, ServerRestart) {
TEST_F(NotificationsTest, HighVolume) {
auto options = optionsMock();
auto volumeControl = volumeControlMock(options);
- auto soundService = standardService(volumeControl, playerListMock(), options);
+ auto volumeWarning = volumeWarningMock(options);
+ auto soundService = standardService(volumeControl, playerListMock(), options, volumeWarning);
/* Set a volume */
notifications->clearNotifications();
@@ -395,7 +414,8 @@ TEST_F(NotificationsTest, HighVolume) {
TEST_F(NotificationsTest, MenuHide) {
auto options = optionsMock();
auto volumeControl = volumeControlMock(options);
- auto soundService = standardService(volumeControl, playerListMock(), options);
+ auto volumeWarning = volumeWarningMock(options);
+ auto soundService = standardService(volumeControl, playerListMock(), options, volumeWarning);
/* Set a volume */
notifications->clearNotifications();
@@ -426,7 +446,8 @@ TEST_F(NotificationsTest, MenuHide) {
TEST_F(NotificationsTest, DISABLED_ExtendendVolumeNotification) {
auto options = optionsMock();
auto volumeControl = volumeControlMock(options);
- auto soundService = standardService(volumeControl, playerListMock(), options);
+ auto volumeWarning = volumeWarningMock(options);
+ auto soundService = standardService(volumeControl, playerListMock(), options, volumeWarning);
/* Set a volume */
notifications->clearNotifications();