diff options
-rw-r--r-- | debian/control | 2 | ||||
-rw-r--r-- | src/media-player-list-greeter.vala | 2 | ||||
-rw-r--r-- | src/service.vala | 2 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 23 | ||||
-rw-r--r-- | tests/greeter-list.cc | 68 | ||||
-rw-r--r-- | tests/media-player-user.cc | 4 |
6 files changed, 96 insertions, 5 deletions
diff --git a/debian/control b/debian/control index 7c9fe2a..fedb664 100644 --- a/debian/control +++ b/debian/control @@ -39,8 +39,8 @@ Depends: ${shlibs:Depends}, pulseaudio, gsettings-ubuntu-schemas (>= 0.0.1+14.04.20140224), Recommends: unity-control-center | gnome-control-center | ubuntu-system-settings | pavucontrol, - unity-greeter-session-broadcast, accountsservice, +Suggests: unity-greeter-session-broadcast, Description: System sound indicator. System sound indicator which provides easy control of the PulseAudio sound daemon. diff --git a/src/media-player-list-greeter.vala b/src/media-player-list-greeter.vala index 4842dc3..3059946 100644 --- a/src/media-player-list-greeter.vala +++ b/src/media-player-list-greeter.vala @@ -108,7 +108,7 @@ public class MediaPlayerListGreeter : MediaPlayerList { public override MediaPlayer? next_value () { MediaPlayer? retval = null; - if (i == 0) { + if (i == 0 && list.selected_user != null) { retval = list.players.lookup(list.selected_user); } i++; diff --git a/src/service.vala b/src/service.vala index 0e32bfe..4e02769 100644 --- a/src/service.vala +++ b/src/service.vala @@ -39,7 +39,7 @@ public class IndicatorSound.Service: Object { this.menus = new HashTable<string, SoundMenu> (str_hash, str_equal); this.menus.insert ("desktop_greeter", new SoundMenu (null, SoundMenu.DisplayFlags.SHOW_MUTE | SoundMenu.DisplayFlags.HIDE_PLAYERS)); - this.menus.insert ("phone_greeter", new SoundMenu (null, SoundMenu.DisplayFlags.SHOW_MUTE | SoundMenu.DisplayFlags.HIDE_INACTIVE_PLAYERS)); + this.menus.insert ("phone_greeter", new SoundMenu (null, SoundMenu.DisplayFlags.HIDE_INACTIVE_PLAYERS)); this.menus.insert ("desktop", new SoundMenu ("indicator.desktop-settings", SoundMenu.DisplayFlags.SHOW_MUTE)); this.menus.insert ("phone", new SoundMenu ("indicator.phone-settings", SoundMenu.DisplayFlags.HIDE_INACTIVE_PLAYERS)); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 9b0586a..ae68c45 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -158,3 +158,26 @@ add_test(media-player-user-test-timeout media-player-user-test --gtest_filter=MediaPlayerUserTest.TimeoutTest ) +########################### +# Greeter List +########################### + +include_directories(${CMAKE_SOURCE_DIR}/src) +add_executable (greeter-list-test greeter-list.cc) +target_link_libraries ( + greeter-list-test + indicator-sound-service-lib + vala-mocks-lib + gtest + ${SOUNDSERVICE_LIBRARIES} + ${TEST_LIBRARIES} +) + +# Split tests to work around libaccountservice sucking +add_test(greeter-list-test-basic + greeter-list-test --gtest_filter=GreeterListTest.BasicObject +) +add_test(greeter-list-test-iterator + greeter-list-test --gtest_filter=GreeterListTest.BasicIterator +) + diff --git a/tests/greeter-list.cc b/tests/greeter-list.cc new file mode 100644 index 0000000..2c4fd61 --- /dev/null +++ b/tests/greeter-list.cc @@ -0,0 +1,68 @@ +/* + * Copyright © 2014 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * Authors: + * Ted Gould <ted@canonical.com> + */ + +#include <gtest/gtest.h> +#include <gio/gio.h> + +extern "C" { +#include "indicator-sound-service.h" +#include "vala-mocks.h" +} + +class GreeterListTest : public ::testing::Test +{ + protected: + GTestDBus * bus = nullptr; + + virtual void SetUp() { + bus = g_test_dbus_new(G_TEST_DBUS_NONE); + g_test_dbus_up(bus); + } + + virtual void TearDown() { + g_test_dbus_down(bus); + g_clear_object(&bus); + } + +}; + +TEST_F(GreeterListTest, BasicObject) { + MediaPlayerListGreeter * list = media_player_list_greeter_new(); + + ASSERT_NE(nullptr, list); + + g_clear_object(&list); + return; +} + +TEST_F(GreeterListTest, BasicIterator) { + MediaPlayerListGreeter * list = media_player_list_greeter_new(); + ASSERT_NE(nullptr, list); + + MediaPlayerListGreeterIterator * iter = media_player_list_greeter_iterator_new(list); + ASSERT_NE(nullptr, iter); + + MediaPlayer * player = media_player_list_iterator_next_value (MEDIA_PLAYER_LIST_ITERATOR(iter)); + ASSERT_EQ(nullptr, player); + + g_clear_object(&iter); + g_clear_object(&list); + return; +} + diff --git a/tests/media-player-user.cc b/tests/media-player-user.cc index 2132e14..32c1181 100644 --- a/tests/media-player-user.cc +++ b/tests/media-player-user.cc @@ -163,7 +163,7 @@ TEST_F(MediaPlayerUserTest, DataSet) { GIcon * out_icon = media_player_get_icon(MEDIA_PLAYER(player)); EXPECT_NE(nullptr, out_icon); EXPECT_TRUE(g_icon_equal(in_icon, out_icon)); - g_clear_object(&out_icon); + // NOTE: No reference in 'out_icon' returned MediaPlayerTrack * track = media_player_get_current_track(MEDIA_PLAYER(player)); EXPECT_NE(nullptr, track); @@ -171,7 +171,7 @@ TEST_F(MediaPlayerUserTest, DataSet) { EXPECT_STREQ("Bansky", media_player_track_get_artist(track)); EXPECT_STREQ("Vinyl is dead", media_player_track_get_album(track)); EXPECT_STREQ("http://art.url", media_player_track_get_art_url(track)); - g_clear_object(&track); + // NOTE: No reference in 'track' returned g_clear_object(&in_icon); g_clear_object(&player); |