aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/control2
-rw-r--r--src/media-player-list-greeter.vala2
-rw-r--r--src/service.vala2
-rw-r--r--tests/CMakeLists.txt23
-rw-r--r--tests/greeter-list.cc68
-rw-r--r--tests/media-player-user.cc4
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);