diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/indicator-test.cc | 112 | ||||
-rw-r--r-- | tests/integration/indicator-sound-test-base.cpp | 16 | ||||
-rw-r--r-- | tests/integration/test-indicator.cpp | 434 | ||||
-rw-r--r-- | tests/notifications-mock.h | 252 | ||||
-rw-r--r-- | tests/sound-menu.cc | 28 |
5 files changed, 421 insertions, 421 deletions
diff --git a/tests/indicator-test.cc b/tests/indicator-test.cc index faa42d0..904cb52 100644 --- a/tests/indicator-test.cc +++ b/tests/indicator-test.cc @@ -27,92 +27,92 @@ class IndicatorTest : public IndicatorFixture { protected: - IndicatorTest (void) : - IndicatorFixture(INDICATOR_SOUND_SERVICE_BINARY, "org.ayatana.indicator.sound") - { - } + IndicatorTest (void) : + IndicatorFixture(INDICATOR_SOUND_SERVICE_BINARY, "org.ayatana.indicator.sound") + { + } - std::shared_ptr<AccountsServiceMock> as; - std::shared_ptr<NotificationsMock> notification; + std::shared_ptr<AccountsServiceMock> as; + std::shared_ptr<NotificationsMock> notification; - virtual void SetUp() override - { - //addMock(buildBustleMock("indicator-test-session.bustle", DBUS_TEST_SERVICE_BUS_SESSION)); - //addMock(buildBustleMock("indicator-test-system.bustle", DBUS_TEST_SERVICE_BUS_SYSTEM)); - g_setenv("LD_PRELOAD", PA_MOCK_LIB, TRUE); + virtual void SetUp() override + { + //addMock(buildBustleMock("indicator-test-session.bustle", DBUS_TEST_SERVICE_BUS_SESSION)); + //addMock(buildBustleMock("indicator-test-system.bustle", DBUS_TEST_SERVICE_BUS_SYSTEM)); + g_setenv("LD_PRELOAD", PA_MOCK_LIB, TRUE); - g_setenv("GSETTINGS_SCHEMA_DIR", SCHEMA_DIR, TRUE); - g_setenv("GSETTINGS_BACKEND", "memory", TRUE); + g_setenv("GSETTINGS_SCHEMA_DIR", SCHEMA_DIR, TRUE); + g_setenv("GSETTINGS_BACKEND", "memory", TRUE); - as = std::make_shared<AccountsServiceMock>(); - addMock(*as); + as = std::make_shared<AccountsServiceMock>(); + addMock(*as); - notification = std::make_shared<NotificationsMock>(); - addMock(*notification); + notification = std::make_shared<NotificationsMock>(); + addMock(*notification); - IndicatorFixture::SetUp(); - } + IndicatorFixture::SetUp(); + } - virtual void TearDown() override - { - as.reset(); - notification.reset(); + virtual void TearDown() override + { + as.reset(); + notification.reset(); - IndicatorFixture::TearDown(); - } + IndicatorFixture::TearDown(); + } }; TEST_F(IndicatorTest, PhoneMenu) { - setMenu("/org/ayatana/indicator/sound/phone"); + setMenu("/org/ayatana/indicator/sound/phone"); - EXPECT_EVENTUALLY_MENU_ATTRIB(std::vector<int>({0}), "action", "indicator.root"); - EXPECT_MENU_ATTRIB({0}, "x-canonical-type", "org.ayatana.indicator.root"); - EXPECT_MENU_ATTRIB({0}, "x-canonical-scroll-action", "indicator.scroll"); - EXPECT_MENU_ATTRIB({0}, "x-canonical-secondary-action", "indicator.mute"); + EXPECT_EVENTUALLY_MENU_ATTRIB(std::vector<int>({0}), "action", "indicator.root"); + EXPECT_MENU_ATTRIB({0}, "x-ayatana-type", "org.ayatana.indicator.root"); + EXPECT_MENU_ATTRIB({0}, "x-ayatana-scroll-action", "indicator.scroll"); + EXPECT_MENU_ATTRIB({0}, "x-ayatana-secondary-action", "indicator.mute"); - EXPECT_MENU_ATTRIB(std::vector<int>({0, 0, 0}), "action", "indicator.silent-mode"); - EXPECT_MENU_ATTRIB(std::vector<int>({0, 0, 0}), "label", "Silent Mode"); + EXPECT_MENU_ATTRIB(std::vector<int>({0, 0, 0}), "action", "indicator.silent-mode"); + EXPECT_MENU_ATTRIB(std::vector<int>({0, 0, 0}), "label", "Silent Mode"); - EXPECT_MENU_ATTRIB(std::vector<int>({0, 1}), "action", "indicator.phone-settings"); - EXPECT_MENU_ATTRIB(std::vector<int>({0, 1}), "label", "Sound Settings…"); + EXPECT_MENU_ATTRIB(std::vector<int>({0, 1}), "action", "indicator.phone-settings"); + EXPECT_MENU_ATTRIB(std::vector<int>({0, 1}), "label", "Sound Settings…"); } TEST_F(IndicatorTest, DesktopMenu) { - setMenu("/org/ayatana/indicator/sound/desktop"); + setMenu("/org/ayatana/indicator/sound/desktop"); - EXPECT_MENU_ATTRIB({0}, "action", "indicator.root"); - EXPECT_MENU_ATTRIB({0}, "x-canonical-type", "org.ayatana.indicator.root"); - EXPECT_MENU_ATTRIB({0}, "x-canonical-scroll-action", "indicator.scroll"); - EXPECT_MENU_ATTRIB({0}, "x-canonical-secondary-action", "indicator.mute"); + EXPECT_MENU_ATTRIB({0}, "action", "indicator.root"); + EXPECT_MENU_ATTRIB({0}, "x-ayatana-type", "org.ayatana.indicator.root"); + EXPECT_MENU_ATTRIB({0}, "x-ayatana-scroll-action", "indicator.scroll"); + EXPECT_MENU_ATTRIB({0}, "x-ayatana-secondary-action", "indicator.mute"); - EXPECT_MENU_ATTRIB(std::vector<int>({0, 0, 0}), "action", "indicator.mute"); - EXPECT_MENU_ATTRIB(std::vector<int>({0, 0, 0}), "label", "Mute"); + EXPECT_MENU_ATTRIB(std::vector<int>({0, 0, 0}), "action", "indicator.mute"); + EXPECT_MENU_ATTRIB(std::vector<int>({0, 0, 0}), "label", "Mute"); - EXPECT_MENU_ATTRIB(std::vector<int>({0, 1}), "action", "indicator.desktop-settings"); - EXPECT_MENU_ATTRIB(std::vector<int>({0, 1}), "label", "Sound Settings…"); + EXPECT_MENU_ATTRIB(std::vector<int>({0, 1}), "action", "indicator.desktop-settings"); + EXPECT_MENU_ATTRIB(std::vector<int>({0, 1}), "label", "Sound Settings…"); } TEST_F(IndicatorTest, BaseActions) { - setActions("/org/ayatana/indicator/sound"); + setActions("/org/ayatana/indicator/sound"); - ASSERT_ACTION_EXISTS("root"); - ASSERT_ACTION_STATE_TYPE("root", G_VARIANT_TYPE("a{sv}")); + ASSERT_ACTION_EXISTS("root"); + ASSERT_ACTION_STATE_TYPE("root", G_VARIANT_TYPE("a{sv}")); - ASSERT_ACTION_EXISTS("scroll"); + ASSERT_ACTION_EXISTS("scroll"); - ASSERT_ACTION_EXISTS("silent-mode"); - ASSERT_ACTION_STATE_TYPE("silent-mode", G_VARIANT_TYPE_BOOLEAN); - EXPECT_ACTION_STATE("silent-mode", false); + ASSERT_ACTION_EXISTS("silent-mode"); + ASSERT_ACTION_STATE_TYPE("silent-mode", G_VARIANT_TYPE_BOOLEAN); + EXPECT_ACTION_STATE("silent-mode", false); - ASSERT_ACTION_EXISTS("mute"); - ASSERT_ACTION_STATE_TYPE("mute", G_VARIANT_TYPE_BOOLEAN); + ASSERT_ACTION_EXISTS("mute"); + ASSERT_ACTION_STATE_TYPE("mute", G_VARIANT_TYPE_BOOLEAN); - ASSERT_ACTION_EXISTS("mic-volume"); - ASSERT_ACTION_STATE_TYPE("mic-volume", G_VARIANT_TYPE_DOUBLE); + ASSERT_ACTION_EXISTS("mic-volume"); + ASSERT_ACTION_STATE_TYPE("mic-volume", G_VARIANT_TYPE_DOUBLE); - ASSERT_ACTION_EXISTS("volume"); - ASSERT_ACTION_STATE_TYPE("volume", G_VARIANT_TYPE_DOUBLE); + ASSERT_ACTION_EXISTS("volume"); + ASSERT_ACTION_STATE_TYPE("volume", G_VARIANT_TYPE_DOUBLE); } diff --git a/tests/integration/indicator-sound-test-base.cpp b/tests/integration/indicator-sound-test-base.cpp index 2eed807..b7a0a77 100644 --- a/tests/integration/indicator-sound-test-base.cpp +++ b/tests/integration/indicator-sound-test-base.cpp @@ -419,7 +419,7 @@ unity::gmenuharness::MenuItemMatcher IndicatorSoundTestBase::volumeSlider(double .double_attribute("min-value", 0.0) .double_attribute("max-value", 1.0) .double_attribute("step", 0.01) - .string_attribute("x-canonical-type", "org.ayatana.unity.slider") + .string_attribute("x-ayatana-type", "org.ayatana.unity.slider") .themed_icon("max-icon", {"audio-volume-high-panel", "audio-volume-high", "audio-volume", "audio"}) .themed_icon("min-icon", {"audio-volume-low-zero-panel", "audio-volume-low-zero", "audio-volume-low", "audio-volume", "audio"}) .pass_through_double_attribute("action", volume); @@ -433,7 +433,7 @@ unity::gmenuharness::MenuItemMatcher IndicatorSoundTestBase::micSlider(double vo .double_attribute("min-value", 0.0) .double_attribute("max-value", 1.0) .double_attribute("step", 0.01) - .string_attribute("x-canonical-type", "org.ayatana.unity.slider") + .string_attribute("x-ayatana-type", "org.ayatana.unity.slider") .themed_icon("max-icon", {"audio-input-microphone-high-panel", "audio-input-microphone-high", "audio-input-microphone", "audio-input", "audio"}) .themed_icon("min-icon", {"audio-input-microphone-low-zero-panel", "audio-input-microphone-low-zero", "audio-input-microphone-low", "audio-input-microphone", "audio-input", "audio"}) .pass_through_double_attribute("action", volume); @@ -923,9 +923,9 @@ void IndicatorSoundTestBase::checkPortDevicesLabels(DevicePortType speakerPort, EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::starts_with) .submenu() @@ -948,9 +948,9 @@ void IndicatorSoundTestBase::checkPortDevicesLabels(DevicePortType speakerPort, EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::starts_with) .submenu() diff --git a/tests/integration/test-indicator.cpp b/tests/integration/test-indicator.cpp index 5e74636..36b299e 100644 --- a/tests/integration/test-indicator.cpp +++ b/tests/integration/test-indicator.cpp @@ -51,9 +51,9 @@ TEST_F(TestIndicator, PhoneCheckRootIcon) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::all) .submenu() @@ -111,9 +111,9 @@ TEST_F(TestIndicator, PhoneTestExternalMicInOut) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::all) .submenu() @@ -134,9 +134,9 @@ TEST_F(TestIndicator, PhoneTestExternalMicInOut) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::all) .submenu() @@ -160,9 +160,9 @@ TEST_F(TestIndicator, PhoneTestExternalMicInOut) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::all) .submenu() @@ -196,8 +196,8 @@ TEST_F(TestIndicator, DesktopTestExternalMicInOut) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -217,8 +217,8 @@ TEST_F(TestIndicator, DesktopTestExternalMicInOut) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -239,8 +239,8 @@ TEST_F(TestIndicator, DesktopTestExternalMicInOut) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -301,9 +301,9 @@ TEST_F(TestIndicator, PhoneChangeRoleVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::starts_with) .submenu() @@ -318,8 +318,8 @@ TEST_F(TestIndicator, PhoneChangeRoleVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::ends_with) .submenu() .item(mh::MenuItemMatcher() @@ -343,9 +343,9 @@ TEST_F(TestIndicator, PhoneChangeRoleVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::starts_with) .submenu() @@ -360,8 +360,8 @@ TEST_F(TestIndicator, PhoneChangeRoleVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::ends_with) .submenu() .item(mh::MenuItemMatcher() @@ -388,9 +388,9 @@ TEST_F(TestIndicator, PhoneBasicInitialVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::all) .submenu() @@ -423,9 +423,9 @@ TEST_F(TestIndicator, PhoneAddMprisPlayer) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::all) .submenu() @@ -453,9 +453,9 @@ TEST_F(TestIndicator, PhoneAddMprisPlayer) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::all) .submenu() @@ -470,13 +470,13 @@ TEST_F(TestIndicator, PhoneAddMprisPlayer) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -507,8 +507,8 @@ TEST_F(TestIndicator, DesktopBasicInitialVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -524,13 +524,13 @@ TEST_F(TestIndicator, DesktopBasicInitialVolume) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -561,8 +561,8 @@ TEST_F(TestIndicator, DesktopAddMprisPlayer) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -578,13 +578,13 @@ TEST_F(TestIndicator, DesktopAddMprisPlayer) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -598,8 +598,8 @@ TEST_F(TestIndicator, DesktopAddMprisPlayer) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -615,11 +615,11 @@ TEST_F(TestIndicator, DesktopAddMprisPlayer) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -650,8 +650,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -667,13 +667,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -688,8 +688,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -705,13 +705,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -720,13 +720,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer2.desktop") .label("TestPlayer2") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer2.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer2.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer2.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer2.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer2.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer2.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -741,8 +741,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -758,13 +758,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -773,13 +773,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer2.desktop") .label("TestPlayer2") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer2.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer2.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer2.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer2.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer2.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer2.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -788,13 +788,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer3.desktop") .label("TestPlayer3") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer3.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer3.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer3.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer3.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer3.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer3.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -809,8 +809,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -826,13 +826,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -841,13 +841,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer2.desktop") .label("TestPlayer2") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer2.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer2.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer2.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer2.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer2.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer2.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -856,7 +856,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer3.desktop") .label("TestPlayer3") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -870,8 +870,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -887,13 +887,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -902,7 +902,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer2.desktop") .label("TestPlayer2") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -911,7 +911,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer3.desktop") .label("TestPlayer3") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -926,8 +926,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -943,13 +943,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -958,7 +958,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer2.desktop") .label("TestPlayer2") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -967,7 +967,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer3.desktop") .label("TestPlayer3") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -982,8 +982,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -999,7 +999,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -1008,7 +1008,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer2.desktop") .label("TestPlayer2") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -1017,13 +1017,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer3.desktop") .label("TestPlayer3") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer3.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer3.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer3.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer3.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer3.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer3.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1038,8 +1038,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -1055,13 +1055,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1070,13 +1070,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer2.desktop") .label("TestPlayer2") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer2.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer2.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer2.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer2.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer2.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer2.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1085,13 +1085,13 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer3.desktop") .label("TestPlayer3") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer3.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer3.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer3.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer3.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer3.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer3.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1109,8 +1109,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -1126,7 +1126,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -1135,7 +1135,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer2.desktop") .label("TestPlayer2") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -1144,11 +1144,11 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer3.desktop") .label("TestPlayer3") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-play-action","indicator.play.testplayer3.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer3.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1169,8 +1169,8 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -1186,11 +1186,11 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer3.desktop") .label("TestPlayer3") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-play-action","indicator.play.testplayer3.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer3.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1199,7 +1199,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -1208,7 +1208,7 @@ TEST_F(TestIndicator, DesktopMprisPlayersPlaybackControls) .action("indicator.testplayer2.desktop") .label("TestPlayer2") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) ) .item(mh::MenuItemMatcher() @@ -1240,8 +1240,8 @@ TEST_F(TestIndicator, DesktopMprisPlayerButtonsState) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -1257,13 +1257,13 @@ TEST_F(TestIndicator, DesktopMprisPlayerButtonsState) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1278,8 +1278,8 @@ TEST_F(TestIndicator, DesktopMprisPlayerButtonsState) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -1295,13 +1295,13 @@ TEST_F(TestIndicator, DesktopMprisPlayerButtonsState) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .attribute_not_set("x-canonical-next-action") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .attribute_not_set("x-ayatana-next-action") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1317,8 +1317,8 @@ TEST_F(TestIndicator, DesktopMprisPlayerButtonsState) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -1334,13 +1334,13 @@ TEST_F(TestIndicator, DesktopMprisPlayerButtonsState) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .attribute_not_set("x-canonical-previous-action") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .attribute_not_set("x-canonical-next-action") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .attribute_not_set("x-ayatana-previous-action") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .attribute_not_set("x-ayatana-next-action") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1355,8 +1355,8 @@ TEST_F(TestIndicator, DesktopMprisPlayerButtonsState) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::all) .submenu() .item(mh::MenuItemMatcher() @@ -1372,13 +1372,13 @@ TEST_F(TestIndicator, DesktopMprisPlayerButtonsState) .action("indicator.testplayer1.desktop") .label("TestPlayer1") .themed_icon("icon", {"testplayer"}) - .string_attribute("x-canonical-type", "org.ayatana.unity.media-player") + .string_attribute("x-ayatana-type", "org.ayatana.unity.media-player") ) .item(mh::MenuItemMatcher() - .string_attribute("x-canonical-previous-action","indicator.previous.testplayer1.desktop") - .string_attribute("x-canonical-play-action","indicator.play.testplayer1.desktop") - .string_attribute("x-canonical-next-action","indicator.next.testplayer1.desktop") - .string_attribute("x-canonical-type","org.ayatana.unity.playback-item") + .string_attribute("x-ayatana-previous-action","indicator.previous.testplayer1.desktop") + .string_attribute("x-ayatana-play-action","indicator.play.testplayer1.desktop") + .string_attribute("x-ayatana-next-action","indicator.next.testplayer1.desktop") + .string_attribute("x-ayatana-type","org.ayatana.unity.playback-item") ) ) .item(mh::MenuItemMatcher() @@ -1427,8 +1427,8 @@ TEST_F(TestIndicator, DesktopChangeRoleVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::starts_with) .submenu() .item(mh::MenuItemMatcher() @@ -1444,8 +1444,8 @@ TEST_F(TestIndicator, DesktopChangeRoleVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(desktopParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::ends_with) .submenu() .item(mh::MenuItemMatcher() @@ -1465,9 +1465,9 @@ TEST_F(TestIndicator, DesktopChangeRoleVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::starts_with) .submenu() @@ -1482,8 +1482,8 @@ TEST_F(TestIndicator, DesktopChangeRoleVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .mode(mh::MenuItemMatcher::Mode::ends_with) .submenu() .item(mh::MenuItemMatcher() @@ -1514,9 +1514,9 @@ TEST_F(TestIndicator, PhoneNotificationVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::all) .submenu() @@ -1645,9 +1645,9 @@ TEST_F(TestIndicator, PhoneNotificationWarningVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::starts_with) .submenu() @@ -1688,9 +1688,9 @@ TEST_F(TestIndicator, PhoneNotificationWarningVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::starts_with) .submenu() @@ -1728,9 +1728,9 @@ TEST_F(TestIndicator, PhoneNotificationWarningVolume) EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters()) .item(mh::MenuItemMatcher() .action("indicator.root") - .string_attribute("x-canonical-type", "org.ayatana.indicator.root") - .string_attribute("x-canonical-scroll-action", "indicator.scroll") - .string_attribute("x-canonical-secondary-action", "indicator.mute") + .string_attribute("x-ayatana-type", "org.ayatana.indicator.root") + .string_attribute("x-ayatana-scroll-action", "indicator.scroll") + .string_attribute("x-ayatana-secondary-action", "indicator.mute") .string_attribute("submenu-action", "indicator.indicator-shown") .mode(mh::MenuItemMatcher::Mode::starts_with) .submenu() diff --git a/tests/notifications-mock.h b/tests/notifications-mock.h index 3cd8570..f05ffe4 100644 --- a/tests/notifications-mock.h +++ b/tests/notifications-mock.h @@ -26,130 +26,130 @@ class NotificationsMock { - DbusTestDbusMock * mock = nullptr; - DbusTestDbusMockObject * baseobj = nullptr; - - public: - NotificationsMock (std::vector<std::string> capabilities = {"actions", "body", "body-markup", "icon-static", "image/svg+xml", "x-canonical-private-synchronous", "x-canonical-append", "x-canonical-private-icon-only", "x-canonical-truncation", "private-synchronous", "append", "private-icon-only", "truncation"}) { - mock = dbus_test_dbus_mock_new("org.freedesktop.Notifications"); - dbus_test_task_set_bus(DBUS_TEST_TASK(mock), DBUS_TEST_SERVICE_BUS_SESSION); - dbus_test_task_set_name(DBUS_TEST_TASK(mock), "Notify"); - - baseobj =dbus_test_dbus_mock_get_object(mock, "/org/freedesktop/Notifications", "org.freedesktop.Notifications", nullptr); - - std::string capspython("ret = "); - capspython += vector2py(capabilities); - dbus_test_dbus_mock_object_add_method(mock, baseobj, - "GetCapabilities", nullptr, G_VARIANT_TYPE("as"), - capspython.c_str(), nullptr); - - dbus_test_dbus_mock_object_add_method(mock, baseobj, - "GetServerInformation", nullptr, G_VARIANT_TYPE("(ssss)"), - "ret = ['notification-mock', 'Testing harness', '1.0', '1.1']", nullptr); - - dbus_test_dbus_mock_object_add_method(mock, baseobj, - "Notify", G_VARIANT_TYPE("(susssasa{sv}i)"), G_VARIANT_TYPE("u"), - "ret = 10", nullptr); - - dbus_test_dbus_mock_object_add_method(mock, baseobj, - "CloseNotification", G_VARIANT_TYPE("u"), nullptr, - "", nullptr); - } - - ~NotificationsMock () { - g_debug("Destroying the Notifications Mock"); - g_clear_object(&mock); - } - - std::string vector2py (std::vector<std::string> vect) { - std::string retval("[ "); - - std::for_each(vect.begin(), vect.end() - 1, [&retval](std::string entry) { - retval += "'"; - retval += entry; - retval += "', "; - }); - - retval += "'"; - retval += *(vect.end() - 1); - retval += "']"; - - return retval; - } - - operator std::shared_ptr<DbusTestTask> () { - std::shared_ptr<DbusTestTask> retval(DBUS_TEST_TASK(g_object_ref(mock)), [](DbusTestTask * task) { g_clear_object(&task); }); - return retval; - } - - operator DbusTestTask* () { - return DBUS_TEST_TASK(mock); - } - - operator DbusTestDbusMock* () { - return mock; - } - - struct Notification { - std::string app_name; - unsigned int replace_id; - std::string app_icon; - std::string summary; - std::string body; - std::vector<std::string> actions; - std::map<std::string, std::shared_ptr<GVariant>> hints; - int timeout; - }; - - std::shared_ptr<GVariant> childGet (GVariant * tuple, gsize index) { - return std::shared_ptr<GVariant>(g_variant_get_child_value(tuple, index), - [](GVariant * v){ if (v != nullptr) g_variant_unref(v); }); - } - - std::vector<Notification> getNotifications (void) { - std::vector<Notification> notifications; - - unsigned int cnt, i; - auto calls = dbus_test_dbus_mock_object_get_method_calls(mock, baseobj, "Notify", &cnt, nullptr); - - for (i = 0; i < cnt; i++) { - auto call = calls[i]; - Notification notification; - - notification.app_name = g_variant_get_string(childGet(call.params, 0).get(), nullptr); - notification.replace_id = g_variant_get_uint32(childGet(call.params, 1).get()); - notification.app_icon = g_variant_get_string(childGet(call.params, 2).get(), nullptr); - notification.summary = g_variant_get_string(childGet(call.params, 3).get(), nullptr); - notification.body = g_variant_get_string(childGet(call.params, 4).get(), nullptr); - notification.timeout = g_variant_get_int32(childGet(call.params, 7).get()); - - auto vactions = childGet(call.params, 5); - GVariantIter iactions = {0}; - g_variant_iter_init(&iactions, vactions.get()); - const gchar * action = nullptr; - while (g_variant_iter_loop(&iactions, "&s", &action)) { - std::string saction(action); - notification.actions.push_back(saction); - } - - auto vhints = childGet(call.params, 6); - GVariantIter ihints = {0}; - g_variant_iter_init(&ihints, vhints.get()); - const gchar * hint_key = nullptr; - GVariant * hint_value = nullptr; - while (g_variant_iter_loop(&ihints, "{&sv}", &hint_key, &hint_value)) { - std::string key(hint_key); - std::shared_ptr<GVariant> value(g_variant_ref(hint_value), [](GVariant * v){ if (v != nullptr) g_variant_unref(v); }); - notification.hints[key] = value; - } - - notifications.push_back(notification); - } - - return notifications; - } - - bool clearNotifications (void) { - return dbus_test_dbus_mock_object_clear_method_calls(mock, baseobj, nullptr); - } + DbusTestDbusMock * mock = nullptr; + DbusTestDbusMockObject * baseobj = nullptr; + + public: + NotificationsMock (std::vector<std::string> capabilities = {"actions", "body", "body-markup", "icon-static", "image/svg+xml", "x-canonical-private-synchronous", "x-canonical-append", "x-canonical-private-icon-only", "x-canonical-truncation", "private-synchronous", "append", "private-icon-only", "truncation"}) { + mock = dbus_test_dbus_mock_new("org.freedesktop.Notifications"); + dbus_test_task_set_bus(DBUS_TEST_TASK(mock), DBUS_TEST_SERVICE_BUS_SESSION); + dbus_test_task_set_name(DBUS_TEST_TASK(mock), "Notify"); + + baseobj =dbus_test_dbus_mock_get_object(mock, "/org/freedesktop/Notifications", "org.freedesktop.Notifications", nullptr); + + std::string capspython("ret = "); + capspython += vector2py(capabilities); + dbus_test_dbus_mock_object_add_method(mock, baseobj, + "GetCapabilities", nullptr, G_VARIANT_TYPE("as"), + capspython.c_str(), nullptr); + + dbus_test_dbus_mock_object_add_method(mock, baseobj, + "GetServerInformation", nullptr, G_VARIANT_TYPE("(ssss)"), + "ret = ['notification-mock', 'Testing harness', '1.0', '1.1']", nullptr); + + dbus_test_dbus_mock_object_add_method(mock, baseobj, + "Notify", G_VARIANT_TYPE("(susssasa{sv}i)"), G_VARIANT_TYPE("u"), + "ret = 10", nullptr); + + dbus_test_dbus_mock_object_add_method(mock, baseobj, + "CloseNotification", G_VARIANT_TYPE("u"), nullptr, + "", nullptr); + } + + ~NotificationsMock () { + g_debug("Destroying the Notifications Mock"); + g_clear_object(&mock); + } + + std::string vector2py (std::vector<std::string> vect) { + std::string retval("[ "); + + std::for_each(vect.begin(), vect.end() - 1, [&retval](std::string entry) { + retval += "'"; + retval += entry; + retval += "', "; + }); + + retval += "'"; + retval += *(vect.end() - 1); + retval += "']"; + + return retval; + } + + operator std::shared_ptr<DbusTestTask> () { + std::shared_ptr<DbusTestTask> retval(DBUS_TEST_TASK(g_object_ref(mock)), [](DbusTestTask * task) { g_clear_object(&task); }); + return retval; + } + + operator DbusTestTask* () { + return DBUS_TEST_TASK(mock); + } + + operator DbusTestDbusMock* () { + return mock; + } + + struct Notification { + std::string app_name; + unsigned int replace_id; + std::string app_icon; + std::string summary; + std::string body; + std::vector<std::string> actions; + std::map<std::string, std::shared_ptr<GVariant>> hints; + int timeout; + }; + + std::shared_ptr<GVariant> childGet (GVariant * tuple, gsize index) { + return std::shared_ptr<GVariant>(g_variant_get_child_value(tuple, index), + [](GVariant * v){ if (v != nullptr) g_variant_unref(v); }); + } + + std::vector<Notification> getNotifications (void) { + std::vector<Notification> notifications; + + unsigned int cnt, i; + auto calls = dbus_test_dbus_mock_object_get_method_calls(mock, baseobj, "Notify", &cnt, nullptr); + + for (i = 0; i < cnt; i++) { + auto call = calls[i]; + Notification notification; + + notification.app_name = g_variant_get_string(childGet(call.params, 0).get(), nullptr); + notification.replace_id = g_variant_get_uint32(childGet(call.params, 1).get()); + notification.app_icon = g_variant_get_string(childGet(call.params, 2).get(), nullptr); + notification.summary = g_variant_get_string(childGet(call.params, 3).get(), nullptr); + notification.body = g_variant_get_string(childGet(call.params, 4).get(), nullptr); + notification.timeout = g_variant_get_int32(childGet(call.params, 7).get()); + + auto vactions = childGet(call.params, 5); + GVariantIter iactions = {0}; + g_variant_iter_init(&iactions, vactions.get()); + const gchar * action = nullptr; + while (g_variant_iter_loop(&iactions, "&s", &action)) { + std::string saction(action); + notification.actions.push_back(saction); + } + + auto vhints = childGet(call.params, 6); + GVariantIter ihints = {0}; + g_variant_iter_init(&ihints, vhints.get()); + const gchar * hint_key = nullptr; + GVariant * hint_value = nullptr; + while (g_variant_iter_loop(&ihints, "{&sv}", &hint_key, &hint_value)) { + std::string key(hint_key); + std::shared_ptr<GVariant> value(g_variant_ref(hint_value), [](GVariant * v){ if (v != nullptr) g_variant_unref(v); }); + notification.hints[key] = value; + } + + notifications.push_back(notification); + } + + return notifications; + } + + bool clearNotifications (void) { + return dbus_test_dbus_mock_object_clear_method_calls(mock, baseobj, nullptr); + } }; diff --git a/tests/sound-menu.cc b/tests/sound-menu.cc index d41c9de..587d47f 100644 --- a/tests/sound-menu.cc +++ b/tests/sound-menu.cc @@ -92,25 +92,25 @@ class SoundMenuTest : public ::testing::Test /* Player display */ verify_item_attribute(section, 0, "action", g_variant_new_string("indicator.player-id")); - verify_item_attribute(section, 0, "x-canonical-type", g_variant_new_string("org.ayatana.unity.media-player")); + verify_item_attribute(section, 0, "x-ayatana-type", g_variant_new_string("org.ayatana.unity.media-player")); /* Player control */ - verify_item_attribute(section, 1, "x-canonical-type", g_variant_new_string("org.ayatana.unity.playback-item")); - //verify_item_attribute(section, 1, "x-canonical-play-action", g_variant_new_string("")); + verify_item_attribute(section, 1, "x-ayatana-type", g_variant_new_string("org.ayatana.unity.playback-item")); + //verify_item_attribute(section, 1, "x-ayatana-play-action", g_variant_new_string("")); if (!canPlay) { - verify_item_attribute_is_not_set(section, 1, "x-canonical-play-action", G_VARIANT_TYPE_STRING); + verify_item_attribute_is_not_set(section, 1, "x-ayatana-play-action", G_VARIANT_TYPE_STRING); } else { - verify_item_attribute(section, 1, "x-canonical-play-action", g_variant_new_string("indicator.play.player-id")); + verify_item_attribute(section, 1, "x-ayatana-play-action", g_variant_new_string("indicator.play.player-id")); } if (!canNext) { - verify_item_attribute_is_not_set(section, 1, "x-canonical-next-action", G_VARIANT_TYPE_STRING); + verify_item_attribute_is_not_set(section, 1, "x-ayatana-next-action", G_VARIANT_TYPE_STRING); } else { - verify_item_attribute(section, 1, "x-canonical-next-action", g_variant_new_string("indicator.next.player-id")); + verify_item_attribute(section, 1, "x-ayatana-next-action", g_variant_new_string("indicator.next.player-id")); } if (!canPrev) { - verify_item_attribute_is_not_set(section, 1, "x-canonical-previous-action", G_VARIANT_TYPE_STRING); + verify_item_attribute_is_not_set(section, 1, "x-ayatana-previous-action", G_VARIANT_TYPE_STRING); } else { - verify_item_attribute(section, 1, "x-canonical-previous-action", g_variant_new_string("indicator.previous.player-id")); + verify_item_attribute(section, 1, "x-ayatana-previous-action", g_variant_new_string("indicator.previous.player-id")); } g_clear_object(§ion); @@ -164,13 +164,13 @@ TEST_F(SoundMenuTest, AddRemovePlayer) { /* Player display */ verify_item_attribute(section, 0, "action", g_variant_new_string("indicator.player-id")); - verify_item_attribute(section, 0, "x-canonical-type", g_variant_new_string("org.ayatana.unity.media-player")); + verify_item_attribute(section, 0, "x-ayatana-type", g_variant_new_string("org.ayatana.unity.media-player")); /* Player control */ - verify_item_attribute(section, 1, "x-canonical-type", g_variant_new_string("org.ayatana.unity.playback-item")); - verify_item_attribute(section, 1, "x-canonical-play-action", g_variant_new_string("indicator.play.player-id")); - verify_item_attribute(section, 1, "x-canonical-next-action", g_variant_new_string("indicator.next.player-id")); - verify_item_attribute(section, 1, "x-canonical-previous-action", g_variant_new_string("indicator.previous.player-id")); + verify_item_attribute(section, 1, "x-ayatana-type", g_variant_new_string("org.ayatana.unity.playback-item")); + verify_item_attribute(section, 1, "x-ayatana-play-action", g_variant_new_string("indicator.play.player-id")); + verify_item_attribute(section, 1, "x-ayatana-next-action", g_variant_new_string("indicator.next.player-id")); + verify_item_attribute(section, 1, "x-ayatana-previous-action", g_variant_new_string("indicator.previous.player-id")); g_clear_object(§ion); |