From d447b27d8364db99da6be15577f2f447234b2205 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Tue, 11 Aug 2020 12:43:54 +0200 Subject: Replace x-canonical attributes --- src/im-desktop-menu.c | 6 +- src/im-menu.c | 2 +- src/im-phone-menu.c | 22 ++--- tests/indicator-test.cpp | 232 +++++++++++++++++++++++------------------------ 4 files changed, 131 insertions(+), 131 deletions(-) diff --git a/src/im-desktop-menu.c b/src/im-desktop-menu.c index 9c56d6b..7dfb7c1 100644 --- a/src/im-desktop-menu.c +++ b/src/im-desktop-menu.c @@ -114,7 +114,7 @@ im_desktop_menu_app_added (ImApplicationList *applist, GVariant *icon; item = g_menu_item_new (g_app_info_get_name (G_APP_INFO (app_info)), "launch"); - g_menu_item_set_attribute (item, "x-canonical-type", "s", "org.ayatana.application"); + g_menu_item_set_attribute (item, "x-ayatana-type", "s", "org.ayatana.application"); icon = g_icon_serialize (g_app_info_get_icon (G_APP_INFO (app_info))); if (icon) @@ -146,7 +146,7 @@ im_desktop_menu_app_added (ImApplicationList *applist, label = indicator_desktop_shortcuts_nick_get_name (shortcuts, *nicks); item = g_menu_item_new (label, *nicks); - g_menu_item_set_attribute (item, "x-canonical-type", "s", "org.ayatana.application"); + g_menu_item_set_attribute (item, "x-ayatana-type", "s", "org.ayatana.application"); g_menu_append_item (app_section, item); g_free (label); @@ -209,7 +209,7 @@ im_desktop_menu_source_section_insert_source (GMenu *source_section, action = g_strconcat ("src.", source_id, NULL); item = g_menu_item_new (label, NULL); g_menu_item_set_action_and_target_value (item, action, NULL); - g_menu_item_set_attribute (item, "x-canonical-type", "s", "org.ayatana.indicator.messages.source"); + g_menu_item_set_attribute (item, "x-ayatana-type", "s", "org.ayatana.indicator.messages.source"); if (serialized_icon) g_menu_item_set_attribute_value (item, "icon", serialized_icon); diff --git a/src/im-menu.c b/src/im-menu.c index 0b98512..d1ff4a5 100644 --- a/src/im-menu.c +++ b/src/im-menu.c @@ -131,7 +131,7 @@ im_menu_init (ImMenu *menu) priv->as = im_accounts_service_ref_default(); root = g_menu_item_new (NULL, "indicator.messages"); - g_menu_item_set_attribute (root, "x-canonical-type", "s", "org.ayatana.indicator.root"); + g_menu_item_set_attribute (root, "x-ayatana-type", "s", "org.ayatana.indicator.root"); g_menu_item_set_attribute (root, "action-namespace", "s", "indicator"); g_menu_item_set_submenu (root, G_MENU_MODEL (priv->menu)); g_menu_append_item (priv->toplevel_menu, root); diff --git a/src/im-phone-menu.c b/src/im-phone-menu.c index 01d25bb..c4d28dd 100644 --- a/src/im-phone-menu.c +++ b/src/im-phone-menu.c @@ -74,7 +74,7 @@ im_phone_menu_update_clear_section (ImPhoneMenu *menu) GMenuItem *item; item = g_menu_item_new (_("Clear All"), "remove-all"); - g_menu_item_set_attribute (item, "x-canonical-type", "s", "org.ayatana.indicator.button"); + g_menu_item_set_attribute (item, "x-ayatana-type", "s", "org.ayatana.indicator.button"); g_menu_append_item (menu->clear_section, item); g_object_unref (item); @@ -158,7 +158,7 @@ im_phone_menu_get_message_time (GMenuModel *model, { gint64 time; - g_menu_model_get_item_attribute (model, i, "x-canonical-time", "x", &time); + g_menu_model_get_item_attribute (model, i, "x-ayatana-time", "x", &time); return time; } @@ -191,25 +191,25 @@ im_phone_menu_add_message (ImPhoneMenu *menu, item = g_menu_item_new (title, NULL); g_menu_item_set_action_and_target_value (item, action_name, g_variant_new_boolean (TRUE)); - g_menu_item_set_attribute (item, "x-canonical-type", "s", "org.ayatana.indicator.messages.messageitem"); - g_menu_item_set_attribute (item, "x-canonical-message-id", "s", id); + g_menu_item_set_attribute (item, "x-ayatana-type", "s", "org.ayatana.indicator.messages.messageitem"); + g_menu_item_set_attribute (item, "x-ayatana-message-id", "s", id); if (show_data) - g_menu_item_set_attribute (item, "x-canonical-subtitle", "s", subtitle); + g_menu_item_set_attribute (item, "x-ayatana-subtitle", "s", subtitle); if (show_data) - g_menu_item_set_attribute (item, "x-canonical-text", "s", body); - g_menu_item_set_attribute (item, "x-canonical-time", "x", time); + g_menu_item_set_attribute (item, "x-ayatana-text", "s", body); + g_menu_item_set_attribute (item, "x-ayatana-time", "x", time); if (serialized_icon) g_menu_item_set_attribute_value (item, "icon", serialized_icon); if (app_icon && (serialized_app_icon = g_icon_serialize (app_icon))) { - g_menu_item_set_attribute_value (item, "x-canonical-app-icon", serialized_app_icon); + g_menu_item_set_attribute_value (item, "x-ayatana-app-icon", serialized_app_icon); g_variant_unref (serialized_app_icon); } if (actions && show_data) - g_menu_item_set_attribute (item, "x-canonical-message-actions", "v", actions); + g_menu_item_set_attribute (item, "x-ayatana-message-actions", "v", actions); n_messages = g_menu_model_get_n_items (G_MENU_MODEL (menu->message_section)); pos = 0; @@ -262,10 +262,10 @@ im_phone_menu_add_source (ImPhoneMenu *menu, item = g_menu_item_new (label, NULL); g_menu_item_set_action_and_target_value (item, action_name, g_variant_new_boolean (TRUE)); - g_menu_item_set_attribute (item, "x-canonical-type", "s", "org.ayatana.indicator.messages.sourceitem"); + g_menu_item_set_attribute (item, "x-ayatana-type", "s", "org.ayatana.indicator.messages.sourceitem"); if (iconstr) - g_menu_item_set_attribute (item, "x-canonical-icon", "s", iconstr); + g_menu_item_set_attribute (item, "x-ayatana-icon", "s", iconstr); g_menu_prepend_item (menu->source_section, item); diff --git a/tests/indicator-test.cpp b/tests/indicator-test.cpp index 6c256fb..4e76eea 100644 --- a/tests/indicator-test.cpp +++ b/tests/indicator-test.cpp @@ -29,181 +29,181 @@ class IndicatorTest : public IndicatorFixture { protected: - IndicatorTest (void) : - IndicatorFixture(INDICATOR_MESSAGES_SERVICE_BINARY, "org.ayatana.indicator.messages") - { - } + IndicatorTest (void) : + IndicatorFixture(INDICATOR_MESSAGES_SERVICE_BINARY, "org.ayatana.indicator.messages") + { + } - std::shared_ptr as; + std::shared_ptr as; - virtual void SetUp() override - { - g_setenv("GSETTINGS_SCHEMA_DIR", SCHEMA_DIR, TRUE); - g_setenv("GSETTINGS_BACKEND", "memory", TRUE); + virtual void SetUp() override + { + g_setenv("GSETTINGS_SCHEMA_DIR", SCHEMA_DIR, TRUE); + g_setenv("GSETTINGS_BACKEND", "memory", TRUE); - g_setenv("XDG_DATA_DIRS", XDG_DATA_DIRS, TRUE); + g_setenv("XDG_DATA_DIRS", XDG_DATA_DIRS, TRUE); - as = std::make_shared(); - addMock(*as); + as = std::make_shared(); + addMock(*as); - IndicatorFixture::SetUp(); - } + IndicatorFixture::SetUp(); + } - virtual void TearDown() override - { - as.reset(); + virtual void TearDown() override + { + as.reset(); - IndicatorFixture::TearDown(); - } + IndicatorFixture::TearDown(); + } }; TEST_F(IndicatorTest, RootAction) { - setActions("/org/ayatana/indicator/messages"); + setActions("/org/ayatana/indicator/messages"); - EXPECT_EVENTUALLY_ACTION_EXISTS("messages"); - EXPECT_ACTION_STATE_TYPE("messages", G_VARIANT_TYPE("a{sv}")); - EXPECT_ACTION_STATE("messages", g_variant_new_parsed("{'icon': <('themed', <['indicator-messages-offline', 'indicator-messages', 'indicator']>)>, 'title': <'Notifications'>, 'accessible-desc': <'Messages'>, 'visible': }")); + EXPECT_EVENTUALLY_ACTION_EXISTS("messages"); + EXPECT_ACTION_STATE_TYPE("messages", G_VARIANT_TYPE("a{sv}")); + EXPECT_ACTION_STATE("messages", g_variant_new_parsed("{'icon': <('themed', <['indicator-messages-offline', 'indicator-messages', 'indicator']>)>, 'title': <'Notifications'>, 'accessible-desc': <'Messages'>, 'visible': }")); } TEST_F(IndicatorTest, SingleMessage) { - setActions("/org/ayatana/indicator/messages"); + setActions("/org/ayatana/indicator/messages"); - auto app = std::shared_ptr(messaging_menu_app_new("test.desktop"), [](MessagingMenuApp * app) { g_clear_object(&app); }); - ASSERT_NE(nullptr, app); - messaging_menu_app_register(app.get()); + auto app = std::shared_ptr(messaging_menu_app_new("test.desktop"), [](MessagingMenuApp * app) { g_clear_object(&app); }); + ASSERT_NE(nullptr, app); + messaging_menu_app_register(app.get()); - EXPECT_EVENTUALLY_ACTION_EXISTS("test.launch"); + EXPECT_EVENTUALLY_ACTION_EXISTS("test.launch"); - auto msg = std::shared_ptr(messaging_menu_message_new( - "testid", - nullptr, /* no icon */ - "Test Title", - "A subtitle too", - "You only like me for my body", - 0), [](MessagingMenuMessage * msg) { g_clear_object(&msg); }); - messaging_menu_app_append_message(app.get(), msg.get(), nullptr, FALSE); + auto msg = std::shared_ptr(messaging_menu_message_new( + "testid", + nullptr, /* no icon */ + "Test Title", + "A subtitle too", + "You only like me for my body", + 0), [](MessagingMenuMessage * msg) { g_clear_object(&msg); }); + messaging_menu_app_append_message(app.get(), msg.get(), nullptr, FALSE); - EXPECT_EVENTUALLY_ACTION_EXISTS("test.msg.testid"); + EXPECT_EVENTUALLY_ACTION_EXISTS("test.msg.testid"); - setMenu("/org/ayatana/indicator/messages/phone"); + setMenu("/org/ayatana/indicator/messages/phone"); - EXPECT_EVENTUALLY_MENU_ATTRIB(std::vector({0, 0, 0}), "x-canonical-type", "org.ayatana.indicator.messages.messageitem"); - EXPECT_MENU_ATTRIB(std::vector({0, 0, 0}), "label", "Test Title"); - EXPECT_MENU_ATTRIB(std::vector({0, 0, 0}), "x-canonical-message-id", "testid"); - EXPECT_MENU_ATTRIB(std::vector({0, 0, 0}), "x-canonical-subtitle", "A subtitle too"); - EXPECT_MENU_ATTRIB(std::vector({0, 0, 0}), "x-canonical-text", "You only like me for my body"); + EXPECT_EVENTUALLY_MENU_ATTRIB(std::vector({0, 0, 0}), "x-ayatana-type", "org.ayatana.indicator.messages.messageitem"); + EXPECT_MENU_ATTRIB(std::vector({0, 0, 0}), "label", "Test Title"); + EXPECT_MENU_ATTRIB(std::vector({0, 0, 0}), "x-ayatana-message-id", "testid"); + EXPECT_MENU_ATTRIB(std::vector({0, 0, 0}), "x-ayatana-subtitle", "A subtitle too"); + EXPECT_MENU_ATTRIB(std::vector({0, 0, 0}), "x-ayatana-text", "You only like me for my body"); } static void messageReplyActivate (GObject * obj, gchar * name, GVariant * value, gpointer user_data) { - auto res = reinterpret_cast(user_data); - *res = g_variant_get_string(value, nullptr); + auto res = reinterpret_cast(user_data); + *res = g_variant_get_string(value, nullptr); } TEST_F(IndicatorTest, MessageReply) { - setActions("/org/ayatana/indicator/messages"); + setActions("/org/ayatana/indicator/messages"); - auto app = std::shared_ptr(messaging_menu_app_new("test.desktop"), [](MessagingMenuApp * app) { g_clear_object(&app); }); - ASSERT_NE(nullptr, app); - messaging_menu_app_register(app.get()); + auto app = std::shared_ptr(messaging_menu_app_new("test.desktop"), [](MessagingMenuApp * app) { g_clear_object(&app); }); + ASSERT_NE(nullptr, app); + messaging_menu_app_register(app.get()); - EXPECT_EVENTUALLY_ACTION_EXISTS("test.launch"); + EXPECT_EVENTUALLY_ACTION_EXISTS("test.launch"); - auto msg = std::shared_ptr(messaging_menu_message_new( - "messageid", - nullptr, /* no icon */ - "Reply Message", - "A message to reply to", - "In-app replies are for wimps, reply here to save yourself time and be cool.", - 0), [](MessagingMenuMessage * msg) { g_clear_object(&msg); }); - messaging_menu_message_add_action(msg.get(), - "replyid", - "Reply", - G_VARIANT_TYPE_STRING, - nullptr); - messaging_menu_app_append_message(app.get(), msg.get(), nullptr, FALSE); + auto msg = std::shared_ptr(messaging_menu_message_new( + "messageid", + nullptr, /* no icon */ + "Reply Message", + "A message to reply to", + "In-app replies are for wimps, reply here to save yourself time and be cool.", + 0), [](MessagingMenuMessage * msg) { g_clear_object(&msg); }); + messaging_menu_message_add_action(msg.get(), + "replyid", + "Reply", + G_VARIANT_TYPE_STRING, + nullptr); + messaging_menu_app_append_message(app.get(), msg.get(), nullptr, FALSE); - EXPECT_EVENTUALLY_ACTION_EXISTS("test.msg.messageid"); - EXPECT_EVENTUALLY_ACTION_EXISTS("test.msg-actions.messageid.replyid"); - EXPECT_ACTION_ACTIVATION_TYPE("test.msg-actions.messageid.replyid", G_VARIANT_TYPE_STRING); + EXPECT_EVENTUALLY_ACTION_EXISTS("test.msg.messageid"); + EXPECT_EVENTUALLY_ACTION_EXISTS("test.msg-actions.messageid.replyid"); + EXPECT_ACTION_ACTIVATION_TYPE("test.msg-actions.messageid.replyid", G_VARIANT_TYPE_STRING); - EXPECT_ACTION_ENABLED("remove-all", true); + EXPECT_ACTION_ENABLED("remove-all", true); - setMenu("/org/ayatana/indicator/messages/phone"); + setMenu("/org/ayatana/indicator/messages/phone"); - EXPECT_EVENTUALLY_MENU_ATTRIB(std::vector({0, 0, 0}), "x-canonical-type", "org.ayatana.indicator.messages.messageitem"); + EXPECT_EVENTUALLY_MENU_ATTRIB(std::vector({0, 0, 0}), "x-ayatana-type", "org.ayatana.indicator.messages.messageitem"); - std::string activateResponse; - g_signal_connect(msg.get(), "activate", G_CALLBACK(messageReplyActivate), &activateResponse); + std::string activateResponse; + g_signal_connect(msg.get(), "activate", G_CALLBACK(messageReplyActivate), &activateResponse); - activateAction("test.msg-actions.messageid.replyid", g_variant_new_string("Reply to me")); + activateAction("test.msg-actions.messageid.replyid", g_variant_new_string("Reply to me")); - EXPECT_EVENTUALLY_EQ("Reply to me", activateResponse); + EXPECT_EVENTUALLY_EQ("Reply to me", activateResponse); - EXPECT_EVENTUALLY_ACTION_ENABLED("remove-all", false); + EXPECT_EVENTUALLY_ACTION_ENABLED("remove-all", false); } TEST_F(IndicatorTest, IconNotification) { - auto normalicon = std::shared_ptr(g_variant_ref_sink(g_variant_new_parsed("{'icon': <('themed', <['indicator-messages-offline', 'indicator-messages', 'indicator']>)>, 'title': <'Notifications'>, 'accessible-desc': <'Messages'>, 'visible': }")), [](GVariant *var) {if (var != nullptr) g_variant_unref(var); }); - auto blueicon = std::shared_ptr(g_variant_ref_sink(g_variant_new_parsed("{'icon': <('themed', <['indicator-messages-new-offline', 'indicator-messages-new', 'indicator-messages', 'indicator']>)>, 'title': <'Notifications'>, 'accessible-desc': <'New Messages'>, 'visible': }")), [](GVariant *var) {if (var != nullptr) g_variant_unref(var); }); + auto normalicon = std::shared_ptr(g_variant_ref_sink(g_variant_new_parsed("{'icon': <('themed', <['indicator-messages-offline', 'indicator-messages', 'indicator']>)>, 'title': <'Notifications'>, 'accessible-desc': <'Messages'>, 'visible': }")), [](GVariant *var) {if (var != nullptr) g_variant_unref(var); }); + auto blueicon = std::shared_ptr(g_variant_ref_sink(g_variant_new_parsed("{'icon': <('themed', <['indicator-messages-new-offline', 'indicator-messages-new', 'indicator-messages', 'indicator']>)>, 'title': <'Notifications'>, 'accessible-desc': <'New Messages'>, 'visible': }")), [](GVariant *var) {if (var != nullptr) g_variant_unref(var); }); - setActions("/org/ayatana/indicator/messages"); + setActions("/org/ayatana/indicator/messages"); - auto app = std::shared_ptr(messaging_menu_app_new("test.desktop"), [](MessagingMenuApp * app) { g_clear_object(&app); }); - ASSERT_NE(nullptr, app); - messaging_menu_app_register(app.get()); + auto app = std::shared_ptr(messaging_menu_app_new("test.desktop"), [](MessagingMenuApp * app) { g_clear_object(&app); }); + ASSERT_NE(nullptr, app); + messaging_menu_app_register(app.get()); - EXPECT_EVENTUALLY_ACTION_EXISTS("test.launch"); + EXPECT_EVENTUALLY_ACTION_EXISTS("test.launch"); - EXPECT_ACTION_STATE("messages", normalicon); + EXPECT_ACTION_STATE("messages", normalicon); - auto app2 = std::shared_ptr(messaging_menu_app_new("test2.desktop"), [](MessagingMenuApp * app) { g_clear_object(&app); }); - ASSERT_NE(nullptr, app2); - messaging_menu_app_register(app2.get()); + auto app2 = std::shared_ptr(messaging_menu_app_new("test2.desktop"), [](MessagingMenuApp * app) { g_clear_object(&app); }); + ASSERT_NE(nullptr, app2); + messaging_menu_app_register(app2.get()); - EXPECT_EVENTUALLY_ACTION_EXISTS("test2.launch"); + EXPECT_EVENTUALLY_ACTION_EXISTS("test2.launch"); - messaging_menu_app_append_source_with_count(app2.get(), - "countsource", - nullptr, - "Count Source", - 500); - messaging_menu_app_draw_attention(app2.get(), "countsource"); + messaging_menu_app_append_source_with_count(app2.get(), + "countsource", + nullptr, + "Count Source", + 500); + messaging_menu_app_draw_attention(app2.get(), "countsource"); - EXPECT_EVENTUALLY_ACTION_STATE("messages", blueicon); + EXPECT_EVENTUALLY_ACTION_STATE("messages", blueicon); - auto msg = std::shared_ptr(messaging_menu_message_new( - "messageid", - nullptr, /* no icon */ - "Message", - "A secret message", - "asdfa;lkweraoweprijas;dvlknasvdoiewur;aslkd", - 0), [](MessagingMenuMessage * msg) { g_clear_object(&msg); }); - messaging_menu_message_set_draws_attention(msg.get(), true); - messaging_menu_app_append_message(app.get(), msg.get(), nullptr, FALSE); + auto msg = std::shared_ptr(messaging_menu_message_new( + "messageid", + nullptr, /* no icon */ + "Message", + "A secret message", + "asdfa;lkweraoweprijas;dvlknasvdoiewur;aslkd", + 0), [](MessagingMenuMessage * msg) { g_clear_object(&msg); }); + messaging_menu_message_set_draws_attention(msg.get(), true); + messaging_menu_app_append_message(app.get(), msg.get(), nullptr, FALSE); - EXPECT_EVENTUALLY_ACTION_EXISTS("test.msg.messageid"); - EXPECT_ACTION_STATE("messages", blueicon); + EXPECT_EVENTUALLY_ACTION_EXISTS("test.msg.messageid"); + EXPECT_ACTION_STATE("messages", blueicon); - messaging_menu_app_unregister(app2.get()); - app2.reset(); + messaging_menu_app_unregister(app2.get()); + app2.reset(); - EXPECT_EVENTUALLY_ACTION_DOES_NOT_EXIST("test2.msg.countsource"); - EXPECT_ACTION_STATE("messages", blueicon); + EXPECT_EVENTUALLY_ACTION_DOES_NOT_EXIST("test2.msg.countsource"); + EXPECT_ACTION_STATE("messages", blueicon); - messaging_menu_app_remove_message(app.get(), msg.get()); + messaging_menu_app_remove_message(app.get(), msg.get()); - EXPECT_EVENTUALLY_ACTION_STATE("messages", normalicon); - EXPECT_ACTION_ENABLED("remove-all", false); + EXPECT_EVENTUALLY_ACTION_STATE("messages", normalicon); + EXPECT_ACTION_ENABLED("remove-all", false); - messaging_menu_app_append_message(app.get(), msg.get(), nullptr, FALSE); + messaging_menu_app_append_message(app.get(), msg.get(), nullptr, FALSE); - EXPECT_EVENTUALLY_ACTION_STATE("messages", blueicon); - EXPECT_ACTION_ENABLED("remove-all", true); + EXPECT_EVENTUALLY_ACTION_STATE("messages", blueicon); + EXPECT_ACTION_ENABLED("remove-all", true); - activateAction("remove-all"); + activateAction("remove-all"); - EXPECT_EVENTUALLY_ACTION_STATE("messages", normalicon); + EXPECT_EVENTUALLY_ACTION_STATE("messages", normalicon); } -- cgit v1.2.3