diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 5 | ||||
-rw-r--r-- | tests/test-libappindicator.c | 46 | ||||
-rw-r--r-- | tests/test-libappindicator.desktop | 23 |
3 files changed, 73 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index f2bdbb2..9cecd5e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -13,7 +13,9 @@ check_PROGRAMS = \ TESTS = DISTCLEANFILES = $(TESTS) -EXTRA_DIST = run-xvfb.sh +EXTRA_DIST = \ + run-xvfb.sh \ + test-libappindicator.desktop ######################################### ## test-libappindicator @@ -24,6 +26,7 @@ test_libappindicator_SOURCES = \ test_libappindicator_CFLAGS = \ $(INDICATOR_CFLAGS) \ + -DSRCDIR="\"$(srcdir)\"" \ -Wall -Werror \ -I$(top_srcdir)/src diff --git a/tests/test-libappindicator.c b/tests/test-libappindicator.c index ece2df0..3860b69 100644 --- a/tests/test-libappindicator.c +++ b/tests/test-libappindicator.c @@ -348,6 +348,50 @@ test_libappindicator_label_signals (void) } void +test_libappindicator_desktop_menu (void) +{ + AppIndicator * ci = app_indicator_new ("my-id", + "my-name", + APP_INDICATOR_CATEGORY_APPLICATION_STATUS); + + g_assert(ci != NULL); + g_assert(app_indicator_get_label(ci) == NULL); + g_assert(app_indicator_get_label_guide(ci) == NULL); + + app_indicator_build_menu_from_desktop(ci, SRCDIR "/test-libappindicator.desktop", "Test Program"); + + GValue serverval = {0}; + g_value_init(&serverval, DBUSMENU_TYPE_SERVER); + g_object_get_property(G_OBJECT(ci), "dbus-menu-server", &serverval); + + DbusmenuServer * server = DBUSMENU_SERVER(g_value_get_object(&serverval)); + g_assert(server != NULL); + + GValue rootval = {0}; + g_value_init(&rootval, DBUSMENU_TYPE_MENUITEM); + g_object_get_property(G_OBJECT(server), DBUSMENU_SERVER_PROP_ROOT_NODE, &rootval); + DbusmenuMenuitem * root = DBUSMENU_MENUITEM(g_value_get_object(&rootval)); + g_assert(root != NULL); + + GList * children = dbusmenu_menuitem_get_children(root); + g_assert(children != NULL); + g_assert(g_list_length(children) == 3); + + + + g_object_unref(G_OBJECT(ci)); + return; +} + +void +test_libappindicator_desktop_menu_bad (void) +{ + + + +} + +void test_libappindicator_props_suite (void) { g_test_add_func ("/indicator-application/libappindicator/init", test_libappindicator_init); @@ -357,6 +401,8 @@ test_libappindicator_props_suite (void) g_test_add_func ("/indicator-application/libappindicator/set_label", test_libappindicator_set_label); g_test_add_func ("/indicator-application/libappindicator/set_menu", test_libappindicator_set_menu); g_test_add_func ("/indicator-application/libappindicator/label_signals", test_libappindicator_label_signals); + g_test_add_func ("/indicator-application/libappindicator/desktop_menu", test_libappindicator_desktop_menu); + g_test_add_func ("/indicator-application/libappindicator/desktop_menu_bad",test_libappindicator_desktop_menu_bad); return; } diff --git a/tests/test-libappindicator.desktop b/tests/test-libappindicator.desktop new file mode 100644 index 0000000..59be810 --- /dev/null +++ b/tests/test-libappindicator.desktop @@ -0,0 +1,23 @@ +[Desktop Entry] +Name=AppIndicator Test +GenericName=Test +Comment=This is only a test +Exec=/usr/bin/false +Terminal=false +Type=Application +X-Ayatana-Desktop-Shortcuts=Short1;Short2;Short3; + +[Short1 Shortcut Group] +Name=Shortcut 1 +Exec=/usr/bin/true +OnlyShowIn=Test Program; + +[Short2 Shortcut Group] +Name=Shortcut 2 +Exec=/usr/bin/true +OnlyShowIn=Test Program; + +[Short3 Shortcut Group] +Name=Shortcut 3 +Exec=/usr/bin/true +OnlyShowIn=Test Program; |