diff options
author | Ted Gould <ted@gould.cx> | 2014-04-01 23:20:15 +0000 |
---|---|---|
committer | CI bot <ps-jenkins@lists.canonical.com> | 2014-04-01 23:20:15 +0000 |
commit | c5d28c44562ab8ba8b16830943d17d3f6923bbec (patch) | |
tree | 985c3e492c4dfcc561422bd69b8e19750e16377f | |
parent | d3dbfd0e650b22ad50eafb85137d6c720538c24a (diff) | |
parent | 4204b595030f6195500100af47cd3b57038e6013 (diff) | |
download | ayatana-indicator-sound-c5d28c44562ab8ba8b16830943d17d3f6923bbec.tar.gz ayatana-indicator-sound-c5d28c44562ab8ba8b16830943d17d3f6923bbec.tar.bz2 ayatana-indicator-sound-c5d28c44562ab8ba8b16830943d17d3f6923bbec.zip |
Check the username has been gotten before using it. Fixes: 1297078
-rw-r--r-- | src/media-player-list-greeter.vala | 2 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 23 | ||||
-rw-r--r-- | tests/greeter-list.cc | 68 |
3 files changed, 92 insertions, 1 deletions
diff --git a/src/media-player-list-greeter.vala b/src/media-player-list-greeter.vala index 15e4c55..4af57af 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/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; +} + |