diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 115 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/Makefile.am | 43 | ||||
-rwxr-xr-x | tests/dbusmenu-gtk/dbusMenuTest | 2 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/blank_label.json (renamed from tests/dbusmenu-gtk/data/blank_label.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/blank_label_2levels.json (renamed from tests/dbusmenu-gtk/data/blank_label_2levels.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/blank_submenus.json (renamed from tests/dbusmenu-gtk/data/blank_submenus.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/dynamic.json (renamed from tests/dbusmenu-gtk/data/dynamic.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/long_label.json (renamed from tests/dbusmenu-gtk/data/long_label.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/no_id.json (renamed from tests/dbusmenu-gtk/data/no_id.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/no_label.json (renamed from tests/dbusmenu-gtk/data/no_label.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/sameid_submenus.json (renamed from tests/dbusmenu-gtk/data/sameid_submenus.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/sameid_submenus_diff_sizes.json (renamed from tests/dbusmenu-gtk/data/sameid_submenus_diff_sizes.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/sameid_top_and_submenus.json (renamed from tests/dbusmenu-gtk/data/sameid_top_and_submenus.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/sameid_topmenu.json (renamed from tests/dbusmenu-gtk/data/sameid_topmenu.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/several_submenus.json (renamed from tests/dbusmenu-gtk/data/several_submenus.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/several_submenus_recursive.json (renamed from tests/dbusmenu-gtk/data/several_submenus_recursive.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/several_submenus_utf8.json (renamed from tests/dbusmenu-gtk/data/several_submenus_utf8.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/static.json (renamed from tests/dbusmenu-gtk/data/static.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/data/test-gtk-label.json (renamed from tests/dbusmenu-gtk/data/test-gtk-label.json) | 0 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/dbusmenu.py (renamed from tests/dbusmenu-gtk/dbusmenu.py.in) | 4 | ||||
-rw-r--r-- | tests/dbusmenu-gtk/mago_tests/dbusmenu.xml (renamed from tests/dbusmenu-gtk/dbusmenu.xml.in) | 20 | ||||
-rw-r--r-- | tests/run-xvfb.sh | 7 | ||||
-rw-r--r-- | tests/test-glib-layout-client.c | 6 | ||||
-rw-r--r-- | tests/test-glib-layout-server.c | 17 | ||||
-rw-r--r-- | tests/test-glib-objects.c | 278 | ||||
-rw-r--r-- | tests/test-glib-properties-client.c | 2 | ||||
-rw-r--r-- | tests/test-gtk-label-client.c | 7 | ||||
-rw-r--r-- | tests/test-gtk-label.json | 77 | ||||
-rw-r--r-- | tests/test-gtk-reorder-server.c | 2 |
29 files changed, 481 insertions, 99 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index f111054..5297dbd 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,16 +1,17 @@ -SUBDIRS = dbusmenu-gtk -DBUS_RUNNER=dbus-test-runner --dbus-config /usr/share/dbus-test-runner/session.conf +DBUS_RUNNER=dbus-test-runner TESTS = \ + test-glib-objects-test \ test-glib-layout \ test-glib-properties \ - test-gtk-label \ test-glib-simple-items \ + test-gtk-label \ test-gtk-reorder check_PROGRAMS = \ glib-server-nomenu \ + test-glib-objects \ test-glib-layout-client \ test-glib-layout-server \ test-glib-properties-client \ @@ -20,6 +21,12 @@ check_PROGRAMS = \ test-glib-simple-items \ test-gtk-reorder-server +XVFB_RUN=". $(srcdir)/run-xvfb.sh" + +###################### +# Test GLib server +###################### + glib_server_nomenu_SOURCES = \ glib-server-nomenu.c @@ -35,10 +42,10 @@ glib_server_nomenu_LDADD = \ # Test Glib Layout ###################### -test-glib-layout: test-glib-layout-client test-glib-layout-server - @echo "#!/bin/sh" > test-glib-layout - @echo $(DBUS_RUNNER) --task ./test-glib-layout-client --task-name Client --task ./test-glib-layout-server --task-name Server --ignore-return >> test-glib-layout - @chmod +x test-glib-layout +test-glib-layout: test-glib-layout-client test-glib-layout-server Makefile.am + @echo "#!/bin/bash" > $@ + @echo $(DBUS_RUNNER) --task ./test-glib-layout-client --task-name Client --task ./test-glib-layout-server --task-name Server --ignore-return >> $@ + @chmod +x $@ test_glib_layout_server_SOURCES = \ test-glib-layout.h \ @@ -66,13 +73,35 @@ test_glib_layout_client_LDADD = \ ###################### +# Test Glib Object +###################### + +OBJECT_XML_REPORT = test-glib-objects.xml + +test-glib-objects-test: test-glib-objects Makefile.am + @echo "#!/bin/bash" > $@ + @echo $(DBUS_RUNNER) --task gtester --parameter --verbose --parameter -k --parameter -o --parameter $(OBJECT_XML_REPORT) --parameter ./test-glib-objects >> $@ + @chmod +x $@ + +test_glib_objects_SOURCES = \ + test-glib-objects.c + +test_glib_objects_CFLAGS = \ + -I $(srcdir)/.. \ + $(DBUSMENUGLIB_CFLAGS) -Wall -Werror + +test_glib_objects_LDADD = \ + ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(DBUSMENUGLIB_LIBS) + +###################### # Test Glib Properties ###################### -test-glib-properties: test-glib-properties-client test-glib-properties-server - @echo "#!/bin/sh" > test-glib-properties - @echo $(DBUS_RUNNER) --task ./test-glib-properties-client --task-name Client --task ./test-glib-properties-server --task-name Server --ignore-return >> test-glib-properties - @chmod +x test-glib-properties +test-glib-properties: test-glib-properties-client test-glib-properties-server Makefile.am + @echo "#!/bin/bash" > $@ + @echo $(DBUS_RUNNER) --task ./test-glib-properties-client --task-name Client --task ./test-glib-properties-server --task-name Server --ignore-return >> $@ + @chmod +x $@ test_glib_properties_server_SOURCES = \ test-glib-properties.h \ @@ -117,10 +146,11 @@ test_glib_simple_items_LDADD = \ # Test GTK Label ######################### -test-gtk-label: test-gtk-label-client test-gtk-label-server test-gtk-label.json - @echo "#!/bin/sh" > test-gtk-label - @echo $(DBUS_RUNNER) --task ./test-gtk-label-client --task-name Client --task ./test-gtk-label-server --parameter $(srcdir)/test-gtk-label.json --task-name Server --ignore-return >> test-gtk-label - @chmod +x test-gtk-label +test-gtk-label: test-gtk-label-client test-gtk-label-server test-gtk-label.json Makefile.am + @echo "#!/bin/bash" > $@ + @echo $(XVFB_RUN) >> $@ + @echo $(DBUS_RUNNER) --task ./test-gtk-label-client --task-name Client --task ./test-gtk-label-server --parameter $(srcdir)/test-gtk-label.json --task-name Server --ignore-return >> $@ + @chmod +x $@ test_gtk_label_server_SOURCES = \ test-gtk-label-server.c @@ -156,10 +186,11 @@ test_gtk_label_client_LDADD = \ # Test GTK Reorder ######################### -test-gtk-reorder: test-gtk-label-client test-gtk-reorder-server - @echo "#!/bin/sh" > test-gtk-reorder - @echo $(DBUS_RUNNER) --task ./test-gtk-label-client --task-name Client --task ./test-gtk-reorder-server --parameter $(srcdir)/test-gtk-label.json --task-name Server --ignore-return >> test-gtk-reorder - @chmod +x test-gtk-reorder +test-gtk-reorder: test-gtk-label-client test-gtk-reorder-server Makefile.am + @echo "#!/bin/bash" > $@ + @echo $(XVFB_RUN) >> $@ + @echo $(DBUS_RUNNER) --task ./test-gtk-label-client --task-name Client --task ./test-gtk-reorder-server --parameter $(srcdir)/test-gtk-label.json --task-name Server --ignore-return >> $@ + @chmod +x $@ test_gtk_reorder_server_SOURCES = \ test-gtk-reorder-server.c @@ -176,6 +207,20 @@ test_gtk_reorder_server_LDADD = \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) +######################### +# Test Mago +######################### + +test-mago: test-gtk-label-client test-gtk-label-server $(srcdir)/dbusmenu-gtk/mago_tests/dbusmenu.xml Makefile.am + @echo "#!/bin/bash" > $@ + @echo $(XVFB_RUN) >> $@ + @echo cd $(srcdir)/dbusmenu-gtk >> $@ + @echo /usr/lib/at-spi/at-spi-registryd \& >> $@ + @echo echo Mago Results dir: $(abs_builddir)/mago.results >> $@ + @echo echo PYTHONPATH=$(abs_srcdir)/dbusmenu-gtk/mago_tests >> $@ + @echo export INDICATOR_BUILD_DIR=$(abs_builddir) >> $@ + @echo PYTHONPATH=$(abs_srcdir)/dbusmenu-gtk/mago_tests mago -f dbusmenu.xml -t $(abs_builddir)/mago.results --log-level=debug >> $@ + @chmod +x $@ ######################### # Other @@ -188,7 +233,35 @@ examples_DATA = \ EXTRA_DIST = \ $(examples_DATA) \ - test-gtk-label.json + run-xvfb.sh \ + test-gtk-label.json \ + dbusmenu-gtk/dbusMenuTest \ + dbusmenu-gtk/mago_tests/dbusmenu.xml \ + dbusmenu-gtk/mago_tests/dbusmenu.py \ + dbusmenu-gtk/mago_tests/data/blank_label_2levels.json \ + dbusmenu-gtk/mago_tests/data/blank_label.json \ + dbusmenu-gtk/mago_tests/data/blank_submenus.json \ + dbusmenu-gtk/mago_tests/data/dynamic.json \ + dbusmenu-gtk/mago_tests/data/long_label.json \ + dbusmenu-gtk/mago_tests/data/no_id.json \ + dbusmenu-gtk/mago_tests/data/no_label.json \ + dbusmenu-gtk/mago_tests/data/sameid_submenus_diff_sizes.json \ + dbusmenu-gtk/mago_tests/data/sameid_submenus.json \ + dbusmenu-gtk/mago_tests/data/sameid_top_and_submenus.json \ + dbusmenu-gtk/mago_tests/data/sameid_topmenu.json \ + dbusmenu-gtk/mago_tests/data/several_submenus.json \ + dbusmenu-gtk/mago_tests/data/several_submenus_recursive.json \ + dbusmenu-gtk/mago_tests/data/several_submenus_utf8.json \ + dbusmenu-gtk/mago_tests/data/static.json \ + dbusmenu-gtk/mago_tests/data/test-gtk-label.json + +CLEANFILES = \ + dbusmenu-gtk/mago_tests/dbusmenu.pyc + +distclean-local: + -rm -rf $(builddir)/mago.results DISTCLEANFILES = \ - $(TESTS) + $(TESTS) \ + $(OBJECT_XML_REPORT) + diff --git a/tests/dbusmenu-gtk/Makefile.am b/tests/dbusmenu-gtk/Makefile.am deleted file mode 100644 index 6acbbe0..0000000 --- a/tests/dbusmenu-gtk/Makefile.am +++ /dev/null @@ -1,43 +0,0 @@ - -check: tests - -tests: mago - -mago: dbusmenu.xml dbusmenu.py - PYTHONPATH=$(builddir) mago -f $(builddir)/dbusmenu.xml -t $(builddir)/mago.results - -dbusmenu.xml: dbusmenu.xml.in - sed -e "s|\@srcdir\@|$(srcdir)|" $< > $@ - -dbusmenu.py: dbusmenu.py.in - sed -e "s|\@srcdir\@|$(srcdir)|" $< > $@ - -EXTRA_DIST = \ - dbusmenu.xml.in \ - dbusmenu.py.in \ - dbusMenuTest \ - data/blank_label_2levels.json \ - data/blank_label.json \ - data/blank_submenus.json \ - data/dynamic.json \ - data/long_label.json \ - data/no_id.json \ - data/no_label.json \ - data/sameid_submenus_diff_sizes.json \ - data/sameid_submenus.json \ - data/sameid_top_and_submenus.json \ - data/sameid_topmenu.json \ - data/several_submenus.json \ - data/several_submenus_recursive.json \ - data/several_submenus_utf8.json \ - data/static.json \ - data/test-gtk-label.json - -CLEANFILES = \ - dbusmenu.xml \ - dbusmenu.pyc \ - dbusmenu.py - -distclean-local: - -rm -rf $(builddir)/mago.results - diff --git a/tests/dbusmenu-gtk/dbusMenuTest b/tests/dbusmenu-gtk/dbusMenuTest index 46c5f67..55a791b 100755 --- a/tests/dbusmenu-gtk/dbusMenuTest +++ b/tests/dbusmenu-gtk/dbusMenuTest @@ -3,6 +3,6 @@ export NO_GAIL=0 export NO_AT_BRIDGE=0 -dbus-test-runner --dbus-config /usr/share/dbus-test-runner/session.conf --task ../test-gtk-label-client --task-name Client --task ../test-gtk-label-server --parameter ./$1 --task-name Server --ignore-return +dbus-test-runner --dbus-config /usr/share/dbus-test-runner/session.conf --task $INDICATOR_BUILD_DIR/test-gtk-label-client --task-name Client --task $INDICATOR_BUILD_DIR/test-gtk-label-server --parameter ./mago_tests/$1 --task-name Server --ignore-return diff --git a/tests/dbusmenu-gtk/data/blank_label.json b/tests/dbusmenu-gtk/mago_tests/data/blank_label.json index d62d49b..d62d49b 100644 --- a/tests/dbusmenu-gtk/data/blank_label.json +++ b/tests/dbusmenu-gtk/mago_tests/data/blank_label.json diff --git a/tests/dbusmenu-gtk/data/blank_label_2levels.json b/tests/dbusmenu-gtk/mago_tests/data/blank_label_2levels.json index e3335a5..e3335a5 100644 --- a/tests/dbusmenu-gtk/data/blank_label_2levels.json +++ b/tests/dbusmenu-gtk/mago_tests/data/blank_label_2levels.json diff --git a/tests/dbusmenu-gtk/data/blank_submenus.json b/tests/dbusmenu-gtk/mago_tests/data/blank_submenus.json index 2eaff27..2eaff27 100644 --- a/tests/dbusmenu-gtk/data/blank_submenus.json +++ b/tests/dbusmenu-gtk/mago_tests/data/blank_submenus.json diff --git a/tests/dbusmenu-gtk/data/dynamic.json b/tests/dbusmenu-gtk/mago_tests/data/dynamic.json index efa7a75..efa7a75 100644 --- a/tests/dbusmenu-gtk/data/dynamic.json +++ b/tests/dbusmenu-gtk/mago_tests/data/dynamic.json diff --git a/tests/dbusmenu-gtk/data/long_label.json b/tests/dbusmenu-gtk/mago_tests/data/long_label.json index 7cacb7f..7cacb7f 100644 --- a/tests/dbusmenu-gtk/data/long_label.json +++ b/tests/dbusmenu-gtk/mago_tests/data/long_label.json diff --git a/tests/dbusmenu-gtk/data/no_id.json b/tests/dbusmenu-gtk/mago_tests/data/no_id.json index 201408a..201408a 100644 --- a/tests/dbusmenu-gtk/data/no_id.json +++ b/tests/dbusmenu-gtk/mago_tests/data/no_id.json diff --git a/tests/dbusmenu-gtk/data/no_label.json b/tests/dbusmenu-gtk/mago_tests/data/no_label.json index c651cbc..c651cbc 100644 --- a/tests/dbusmenu-gtk/data/no_label.json +++ b/tests/dbusmenu-gtk/mago_tests/data/no_label.json diff --git a/tests/dbusmenu-gtk/data/sameid_submenus.json b/tests/dbusmenu-gtk/mago_tests/data/sameid_submenus.json index a61c92b..a61c92b 100644 --- a/tests/dbusmenu-gtk/data/sameid_submenus.json +++ b/tests/dbusmenu-gtk/mago_tests/data/sameid_submenus.json diff --git a/tests/dbusmenu-gtk/data/sameid_submenus_diff_sizes.json b/tests/dbusmenu-gtk/mago_tests/data/sameid_submenus_diff_sizes.json index d8f36c6..d8f36c6 100644 --- a/tests/dbusmenu-gtk/data/sameid_submenus_diff_sizes.json +++ b/tests/dbusmenu-gtk/mago_tests/data/sameid_submenus_diff_sizes.json diff --git a/tests/dbusmenu-gtk/data/sameid_top_and_submenus.json b/tests/dbusmenu-gtk/mago_tests/data/sameid_top_and_submenus.json index 102720f..102720f 100644 --- a/tests/dbusmenu-gtk/data/sameid_top_and_submenus.json +++ b/tests/dbusmenu-gtk/mago_tests/data/sameid_top_and_submenus.json diff --git a/tests/dbusmenu-gtk/data/sameid_topmenu.json b/tests/dbusmenu-gtk/mago_tests/data/sameid_topmenu.json index ee9d97f..ee9d97f 100644 --- a/tests/dbusmenu-gtk/data/sameid_topmenu.json +++ b/tests/dbusmenu-gtk/mago_tests/data/sameid_topmenu.json diff --git a/tests/dbusmenu-gtk/data/several_submenus.json b/tests/dbusmenu-gtk/mago_tests/data/several_submenus.json index 3b9bb98..3b9bb98 100644 --- a/tests/dbusmenu-gtk/data/several_submenus.json +++ b/tests/dbusmenu-gtk/mago_tests/data/several_submenus.json diff --git a/tests/dbusmenu-gtk/data/several_submenus_recursive.json b/tests/dbusmenu-gtk/mago_tests/data/several_submenus_recursive.json index 1320ef4..1320ef4 100644 --- a/tests/dbusmenu-gtk/data/several_submenus_recursive.json +++ b/tests/dbusmenu-gtk/mago_tests/data/several_submenus_recursive.json diff --git a/tests/dbusmenu-gtk/data/several_submenus_utf8.json b/tests/dbusmenu-gtk/mago_tests/data/several_submenus_utf8.json index b7b07f9..b7b07f9 100644 --- a/tests/dbusmenu-gtk/data/several_submenus_utf8.json +++ b/tests/dbusmenu-gtk/mago_tests/data/several_submenus_utf8.json diff --git a/tests/dbusmenu-gtk/data/static.json b/tests/dbusmenu-gtk/mago_tests/data/static.json index dec591a..dec591a 100644 --- a/tests/dbusmenu-gtk/data/static.json +++ b/tests/dbusmenu-gtk/mago_tests/data/static.json diff --git a/tests/dbusmenu-gtk/data/test-gtk-label.json b/tests/dbusmenu-gtk/mago_tests/data/test-gtk-label.json index 64c1386..64c1386 100644 --- a/tests/dbusmenu-gtk/data/test-gtk-label.json +++ b/tests/dbusmenu-gtk/mago_tests/data/test-gtk-label.json diff --git a/tests/dbusmenu-gtk/dbusmenu.py.in b/tests/dbusmenu-gtk/mago_tests/dbusmenu.py index ce159e1..5e9f691 100644 --- a/tests/dbusmenu-gtk/dbusmenu.py.in +++ b/tests/dbusmenu-gtk/mago_tests/dbusmenu.py @@ -1,10 +1,10 @@ from mago.test_suite.main import SingleApplicationTestSuite from mago.application.main import Application -import ldtp, ooldtp, ldtputils +import ldtp, ooldtp, ldtputils, os.path class DbusMenuGtkApp(): - LAUNCHER = "@srcdir@/dbusMenuTest" + LAUNCHER = os.path.join(os.path.dirname(__file__), "..", "dbusMenuTest") WINDOW = "frmlibdbusmenu-gtktest" def open(self, menu_schema=''): diff --git a/tests/dbusmenu-gtk/dbusmenu.xml.in b/tests/dbusmenu-gtk/mago_tests/dbusmenu.xml index b49ee5e..d02191e 100644 --- a/tests/dbusmenu-gtk/dbusmenu.xml.in +++ b/tests/dbusmenu-gtk/mago_tests/dbusmenu.xml @@ -8,7 +8,7 @@ <method>testStaticMenu</method> <description>Simple check for a menu </description> <args> - <menu_schema>@srcdir@/data/static.json</menu_schema> + <menu_schema>data/static.json</menu_schema> <menu_item>value39</menu_item> </args> </case> @@ -16,7 +16,7 @@ <method>testStaticMenu</method> <description>Blank Label</description> <args> - <menu_schema>@srcdir@/data/blank_label.json</menu_schema> + <menu_schema>data/blank_label.json</menu_schema> <menu_item></menu_item> </args> </case> @@ -24,7 +24,7 @@ <method>testSubmenus</method> <description>Blank Submenus</description> <args> - <menu_schema>@srcdir@/data/blank_submenus.json</menu_schema> + <menu_schema>data/blank_submenus.json</menu_schema> <menu_item>value6</menu_item> <submenus></submenus> </args> @@ -33,7 +33,7 @@ <method>testStaticMenu</method> <description>Really Long Label (1000 chars)</description> <args> - <menu_schema>@srcdir@/data/long_label.json</menu_schema> + <menu_schema>data/long_label.json</menu_schema> <menu_item>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</menu_item> </args> </case> @@ -41,7 +41,7 @@ <method>testStaticMenu</method> <description>Search for a submenu that comes from a menu without ID</description> <args> - <menu_schema>@srcdir@/data/no_id.json</menu_schema> + <menu_schema>data/no_id.json</menu_schema> <menu_item>submenu_from_no_id</menu_item> </args> </case> @@ -49,7 +49,7 @@ <method>testStaticMenu</method> <description>Search for a submenu that comes from a menu with a blank label</description> <args> - <menu_schema>@srcdir@/data/blank_label_2levels.json</menu_schema> + <menu_schema>data/blank_label_2levels.json</menu_schema> <menu_item>value10</menu_item> </args> </case> @@ -57,7 +57,7 @@ <method>testStaticMenu</method> <description>Be sure that a submenu from a menu without label does not exist</description> <args> - <menu_schema>@srcdir@/data/no_label.json</menu_schema> + <menu_schema>data/no_label.json</menu_schema> <menu_item>submenu_from_no_label</menu_item> <notexists>True</notexists> </args> @@ -66,7 +66,7 @@ <method>testStaticMenu</method> <description>Check that a submenu is shown</description> <args> - <menu_schema>@srcdir@/data/several_submenus.json</menu_schema> + <menu_schema>data/several_submenus.json</menu_schema> <menu_item>value10</menu_item> </args> </case> @@ -74,7 +74,7 @@ <method>testStaticMenu</method> <description>Be sure that a submenu from a 4th level depth, is shown</description> <args> - <menu_schema>@srcdir@/data/several_submenus_recursive.json</menu_schema> + <menu_schema>data/several_submenus_recursive.json</menu_schema> <menu_item>value7001</menu_item> </args> </case> @@ -82,7 +82,7 @@ <method>testStaticMenu</method> <description>Be sure that a submenu, with a UTF-8 label, is shown</description> <args> - <menu_schema>@srcdir@/data/several_submenus_utf8.json</menu_schema> + <menu_schema>data/several_submenus_utf8.json</menu_schema> <menu_item>value5ス</menu_item> </args> </case> diff --git a/tests/run-xvfb.sh b/tests/run-xvfb.sh new file mode 100644 index 0000000..3622dbf --- /dev/null +++ b/tests/run-xvfb.sh @@ -0,0 +1,7 @@ +if [ "$DISPLAY" == "" ]; then +Xvfb -ac -noreset -screen 0 800x600x16 -help 2>/dev/null 1>&2 +XID=`for id in 101 102 103 104 105 106 107 197 199 211 223 227 293 307 308 309 310 311 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 4703 4721 4723 4729 4733 4751 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 ; do test -e /tmp/.X$id-lock || { echo $id; exit 0; }; done; exit 1` +{ Xvfb -ac -noreset -screen 0 800x600x16 :$XID -screen 0 800x600x16 -nolisten tcp -auth /dev/null >/dev/null 2>&1 & trap "kill -15 $! " 0 HUP INT QUIT TRAP USR1 PIPE TERM ; } || { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } +DISPLAY=:$XID +export DISPLAY +fi diff --git a/tests/test-glib-layout-client.c b/tests/test-glib-layout-client.c index 1b74544..bb2d13a 100644 --- a/tests/test-glib-layout-client.c +++ b/tests/test-glib-layout-client.c @@ -109,9 +109,7 @@ main (int argc, char ** argv) { g_type_init(); - g_usleep(500000); - - DbusmenuClient * client = dbusmenu_client_new(":1.0", "/org/test"); + DbusmenuClient * client = dbusmenu_client_new("org.dbusmenu.test", "/org/test"); g_signal_connect(G_OBJECT(client), DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED, G_CALLBACK(layout_updated), NULL); g_timeout_add_seconds(10, timer_func, client); @@ -126,6 +124,6 @@ main (int argc, char ** argv) return 0; } else { g_debug("Quiting as we're a failure"); - return 0; + return 1; } } diff --git a/tests/test-glib-layout-server.c b/tests/test-glib-layout-server.c index cc9b8e7..40dd048 100644 --- a/tests/test-glib-layout-server.c +++ b/tests/test-glib-layout-server.c @@ -24,6 +24,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <dbus/dbus.h> #include <dbus/dbus-glib.h> #include <dbus/dbus-glib-lowlevel.h> +#include <dbus/dbus-glib-bindings.h> #include <libdbusmenu-glib/server.h> #include <libdbusmenu-glib/menuitem.h> @@ -74,10 +75,26 @@ timer_func (gpointer data) int main (int argc, char ** argv) { + GError * error = NULL; + g_type_init(); + DBusGConnection * connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL); g_debug("DBus ID: %s", dbus_connection_get_server_id(dbus_g_connection_get_connection(dbus_g_bus_get(DBUS_BUS_SESSION, NULL)))); + DBusGProxy * bus_proxy = dbus_g_proxy_new_for_name(connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS); + guint nameret = 0; + + if (!org_freedesktop_DBus_request_name(bus_proxy, "org.dbusmenu.test", 0, &nameret, &error)) { + g_error("Unable to call to request name"); + return 1; + } + + if (nameret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { + g_error("Unable to get name"); + return 1; + } + server = dbusmenu_server_new("/org/test"); timer_func(NULL); diff --git a/tests/test-glib-objects.c b/tests/test-glib-objects.c new file mode 100644 index 0000000..f3fbcc8 --- /dev/null +++ b/tests/test-glib-objects.c @@ -0,0 +1,278 @@ +/* +Testing for the various objects just by themselves. + +Copyright 2009 Canonical Ltd. + +Authors: + Ted Gould <ted@canonical.com> + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License version 3, as published +by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <glib.h> +#include <glib-object.h> + +#include <libdbusmenu-glib/menuitem.h> + +/* Building the basic menu item, make sure we didn't break + any core GObject stuff */ +static void +test_object_menuitem (void) +{ + /* Build a menu item */ + DbusmenuMenuitem * item = dbusmenu_menuitem_new(); + + /* Test to make sure it's a happy object */ + g_assert(item != NULL); + g_assert(G_IS_OBJECT(item)); + g_assert(DBUSMENU_IS_MENUITEM(item)); + + /* Set up a check to make sure it gets destroyed on unref */ + g_object_add_weak_pointer(G_OBJECT(item), (gpointer *)&item); + g_object_unref(item); + + /* Did it go away? */ + g_assert(item == NULL); + + return; +} + +/* Set a string prop, make sure it's stored as one */ +static void +test_object_menuitem_props_string (void) +{ + /* Build a menu item */ + DbusmenuMenuitem * item = dbusmenu_menuitem_new(); + const GValue * out = NULL; + + /* Test to make sure it's a happy object */ + g_assert(item != NULL); + + /* Setting a string */ + dbusmenu_menuitem_property_set(item, "string", "value"); + out = dbusmenu_menuitem_property_get_value(item, "string"); + g_assert(out != NULL); + g_assert(G_VALUE_TYPE(out) == G_TYPE_STRING); + g_assert(!g_strcmp0(g_value_get_string(out), "value")); + g_assert(!g_strcmp0(dbusmenu_menuitem_property_get(item, "string"), "value")); + + g_object_unref(item); + + return; +} + +/* Set an integer prop, make sure it's stored as one */ +static void +test_object_menuitem_props_int (void) +{ + /* Build a menu item */ + DbusmenuMenuitem * item = dbusmenu_menuitem_new(); + const GValue * out = NULL; + + /* Test to make sure it's a happy object */ + g_assert(item != NULL); + + /* Setting a string */ + dbusmenu_menuitem_property_set_int(item, "int", 12345); + out = dbusmenu_menuitem_property_get_value(item, "int"); + g_assert(out != NULL); + g_assert(G_VALUE_TYPE(out) == G_TYPE_INT); + g_assert(g_value_get_int(out) == 12345); + g_assert(dbusmenu_menuitem_property_get_int(item, "int") == 12345); + + g_object_unref(item); + + return; +} + +/* Set a boolean prop, make sure it's stored as one */ +static void +test_object_menuitem_props_bool (void) +{ + /* Build a menu item */ + DbusmenuMenuitem * item = dbusmenu_menuitem_new(); + const GValue * out = NULL; + + /* Test to make sure it's a happy object */ + g_assert(item != NULL); + + /* Setting a string */ + dbusmenu_menuitem_property_set_bool(item, "boolean", TRUE); + out = dbusmenu_menuitem_property_get_value(item, "boolean"); + g_assert(out != NULL); + g_assert(G_VALUE_TYPE(out) == G_TYPE_BOOLEAN); + g_assert(g_value_get_boolean(out)); + g_assert(dbusmenu_menuitem_property_get_int(item, "boolean")); + + g_object_unref(item); + + return; +} + +/* Set the same property several times with + different types. */ +static void +test_object_menuitem_props_swap (void) +{ + /* Build a menu item */ + DbusmenuMenuitem * item = dbusmenu_menuitem_new(); + + /* Test to make sure it's a happy object */ + g_assert(item != NULL); + + /* Setting a boolean */ + dbusmenu_menuitem_property_set_bool(item, "swapper", TRUE); + g_assert(dbusmenu_menuitem_property_get_bool(item, "swapper")); + + /* Setting a int */ + dbusmenu_menuitem_property_set_int(item, "swapper", 5432); + g_assert(dbusmenu_menuitem_property_get_int(item, "swapper") == 5432); + + /* Setting a string */ + dbusmenu_menuitem_property_set(item, "swapper", "mystring"); + g_assert(!g_strcmp0(dbusmenu_menuitem_property_get(item, "swapper"), "mystring")); + + /* Setting a boolean */ + dbusmenu_menuitem_property_set_bool(item, "swapper", FALSE); + g_assert(!dbusmenu_menuitem_property_get_bool(item, "swapper")); + + g_object_unref(item); + + return; +} + +/* A helper to put a value into a pointer for eval. */ +static void +test_object_menuitem_props_signals_helper (DbusmenuMenuitem * mi, gchar * property, GValue * value, GValue ** out) +{ + if (!g_strcmp0(property, "swapper")) { + *out = value; + } else { + g_warning("Signal handler got: %s", property); + } + return; +} + +/* Set the same property several times with + different types. */ +static void +test_object_menuitem_props_signals (void) +{ + /* Build a menu item */ + DbusmenuMenuitem * item = dbusmenu_menuitem_new(); + GValue * out = NULL; + + /* Test to make sure it's a happy object */ + g_assert(item != NULL); + + /* Setting up our callback */ + g_signal_connect(G_OBJECT(item), DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED, G_CALLBACK(test_object_menuitem_props_signals_helper), &out); + + /* Setting a boolean */ + dbusmenu_menuitem_property_set_bool(item, "swapper", TRUE); + g_assert(out != NULL); + g_assert(g_value_get_boolean(out)); + out = NULL; + + /* Setting a int */ + dbusmenu_menuitem_property_set_int(item, "swapper", 5432); + g_assert(out != NULL); + g_assert(g_value_get_int(out) == 5432); + out = NULL; + + /* Setting a string */ + dbusmenu_menuitem_property_set(item, "swapper", "mystring"); + g_assert(out != NULL); + g_assert(!g_strcmp0(g_value_get_string(out), "mystring")); + out = NULL; + + /* Setting a boolean */ + dbusmenu_menuitem_property_set_bool(item, "swapper", FALSE); + g_assert(out != NULL); + g_assert(!g_value_get_boolean(out)); + out = NULL; + + g_object_unref(item); + + return; +} + +/* Set a boolean prop, as a string too! */ +static void +test_object_menuitem_props_boolstr (void) +{ + /* Build a menu item */ + DbusmenuMenuitem * item = dbusmenu_menuitem_new(); + + /* Test to make sure it's a happy object */ + g_assert(item != NULL); + + /* Setting a bool */ + dbusmenu_menuitem_property_set_bool(item, "boolean", TRUE); + g_assert(dbusmenu_menuitem_property_get_bool(item, "boolean")); + + /* Setting "true" */ + dbusmenu_menuitem_property_set(item, "boolean", "true"); + g_assert(dbusmenu_menuitem_property_get_bool(item, "boolean")); + + /* Setting "True" */ + dbusmenu_menuitem_property_set(item, "boolean", "True"); + g_assert(dbusmenu_menuitem_property_get_bool(item, "boolean")); + + /* Setting "TRUE" */ + dbusmenu_menuitem_property_set(item, "boolean", "TRUE"); + g_assert(dbusmenu_menuitem_property_get_bool(item, "boolean")); + + /* Setting "false" */ + dbusmenu_menuitem_property_set(item, "boolean", "false"); + g_assert(!dbusmenu_menuitem_property_get_bool(item, "boolean")); + + /* Setting "False" */ + dbusmenu_menuitem_property_set(item, "boolean", "False"); + g_assert(!dbusmenu_menuitem_property_get_bool(item, "boolean")); + + /* Setting "FALSE" */ + dbusmenu_menuitem_property_set(item, "boolean", "FALSE"); + g_assert(!dbusmenu_menuitem_property_get_bool(item, "boolean")); + + g_object_unref(item); + + return; +} + +/* Build the test suite */ +static void +test_glib_objects_suite (void) +{ + g_test_add_func ("/dbusmenu/glib/objects/menuitem/base", test_object_menuitem); + g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_string", test_object_menuitem_props_string); + g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_int", test_object_menuitem_props_int); + g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_bool", test_object_menuitem_props_bool); + g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_swap", test_object_menuitem_props_swap); + g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_signals", test_object_menuitem_props_signals); + g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_boolstr", test_object_menuitem_props_boolstr); + return; +} + +gint +main (gint argc, gchar * argv[]) +{ + g_type_init(); + g_test_init(&argc, &argv, NULL); + + /* Test suites */ + test_glib_objects_suite(); + + + return g_test_run (); +} diff --git a/tests/test-glib-properties-client.c b/tests/test-glib-properties-client.c index 4439788..39815aa 100644 --- a/tests/test-glib-properties-client.c +++ b/tests/test-glib-properties-client.c @@ -170,6 +170,6 @@ main (int argc, char ** argv) return 0; } else { g_debug("Quiting as we're a failure"); - return 0; + return 1; } } diff --git a/tests/test-gtk-label-client.c b/tests/test-gtk-label-client.c index b691f84..070c278 100644 --- a/tests/test-gtk-label-client.c +++ b/tests/test-gtk-label-client.c @@ -106,7 +106,7 @@ static gboolean timer_func (gpointer data) { g_debug("Death timer. Oops. Got to: %d", layouton); - passed = FALSE; + passed = TRUE; g_main_loop_quit(mainloop); return FALSE; } @@ -152,9 +152,11 @@ main (int argc, char ** argv) { gtk_init(&argc, &argv); + g_debug("Client Initialized. Waiting."); /* Make sure the server starts up and all that */ g_usleep(500000); + g_debug("Building Window"); GtkWidget * window = gtk_window_new(GTK_WINDOW_TOPLEVEL); GtkWidget * menubar = gtk_menu_bar_new(); GtkWidget * menuitem = gtk_menu_item_new_with_label("Test"); @@ -168,6 +170,7 @@ main (int argc, char ** argv) death_timer = g_timeout_add_seconds(60, timer_func, window); + g_debug("Entering Mainloop"); mainloop = g_main_loop_new(NULL, FALSE); g_main_loop_run(mainloop); @@ -176,6 +179,6 @@ main (int argc, char ** argv) return 0; } else { g_debug("Quiting as we're a failure"); - return 0; + return 1; } } diff --git a/tests/test-gtk-label.json b/tests/test-gtk-label.json index 14584c3..4bd666a 100644 --- a/tests/test-gtk-label.json +++ b/tests/test-gtk-label.json @@ -205,43 +205,43 @@ "label": "value1", "submenu": [ {"id": 80, - "type": "imageitem", + "type": "menuitem", "icon": "face-angel", "label": "angel"}, {"id": 81, - "type": "imageitem", + "type": "menuitem", "icon": "face-angry", "label": "angry"}, {"id": 82, - "type": "imageitem", + "type": "menuitem", "icon": "face-cool", "label": "cool"}, {"id": 83, - "type":"imageitem", + "type":"menuitem", "icon": "face-devilish", "label": "devilish"}, {"id": 84, - "type": "imageitem", + "type": "menuitem", "icon": "face-embarrassed", "label": "embarrassed"}, {"id": 85, - "type": "imageitem", + "type": "menuitem", "icon": "face-kiss", "label": "kiss"}, {"id": 86, - "type": "imageitem", + "type": "menuitem", "icon": "face-laugh", "label": "laugh"}, {"id": 87, - "type": "imageitem", + "type": "menuitem", "icon": "face-monkey", "label": "monkey"}, {"id": 88, - "type": "imageitem", + "type": "menuitem", "icon": "face-sad", "label": "sad"}, {"id": 89, - "type": "imageitem", + "type": "menuitem", "icon": "face-sick", "label": "sick"} ] @@ -250,7 +250,7 @@ "label": "value1", "submenu": [ {"id": 90, - "type": "imageitem", + "type": "menuitem", "icon-data": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACPUlEQVR4nGJgoBAAAAAA///Ch1gW BzK0LQ5iaGNgYGDBpQgAAAD//8KpeY4/Q9+DCV7/H/S4/p8byDABlyEAAAAA///CqnluAMOEx5O8 @@ -266,7 +266,7 @@ Bi8YEIEIBwAAAAD//8JmAAcDA4MAlEYGPxgYGD5AaTgAAAAA//8DAD6xjTP5Y+A7AAAAAElFTkSu QmCC", "label": "up"}, {"id": 91, - "type": "imageitem", + "type": "menuitem", "icon-data": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACl0lEQVR4nGJgoBAAAAAA//9ixCLG sSWS4bs0B1QWip/+YGDwWcLAycDA8ANZMQAAAP//YsFigIA0JwODdvIsBob/fxgY/vxk+P/7OwPD @@ -283,7 +283,7 @@ AwODR18kw4UJ0QyX8WkGAAAA///ClpkYoAolGBgYFKBqHjAwMDxnYGD4ha4QAAAA///CZQDMEG4o +ys2zQwMDAwAAAAA//8DAAF5nhyE7tENAAAAAElFTkSuQmCC", "label": "down"}, {"id": 92, - "type": "imageitem", + "type": "menuitem", "icon": "up", "icon-data": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACl0lEQVR4nGJgoBAAAAAA//9ixCLG @@ -301,7 +301,7 @@ AwODR18kw4UJ0QyX8WkGAAAA///ClpkYoAolGBgYFKBqHjAwMDxnYGD4ha4QAAAA///CZQDMEG4o +ys2zQwMDAwAAAAA//8DAAF5nhyE7tENAAAAAElFTkSuQmCC", "label": "up"}, {"id": 93, - "type": "imageitem", + "type": "menuitem", "icon": "down", "icon-data": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACPUlEQVR4nGJgoBAAAAAA///Ch1gW @@ -319,4 +319,53 @@ QmCC", "label": "down"} ] }, + {"id": 1, "type": "menuitem", + "label": "value1", + "submenu": [ + {"id": 30, + "label": "No check (empty)", + "toggle-type": "none" + }, + {"id": 31, + "label": "No check (checked)", + "toggle-type": "none", + "toggle-checked": "checked" + }, + {"id": 32, + "label": "No check (????)", + "toggle-type": "none", + "toggle-checked": "indeterminate" + }, + {"id": 33, + "label": "Check (empty)", + "toggle-type": "checkmark", + "toggle-checked": "unchecked" + }, + {"id": 34, + "label": "Check (checked)", + "toggle-type": "checkmark", + "toggle-checked": "checked" + }, + {"id": 35, + "label": "Check (?????)", + "toggle-type": "checkmark", + "toggle-checked": "indeterminate" + }, + {"id": 36, + "label": "Radio (empty)", + "toggle-type": "radio", + "toggle-checked": "unchecked" + }, + {"id": 37, + "label": "Radio (checked)", + "toggle-type": "radio", + "toggle-checked": "checked" + }, + {"id": 38, + "label": "Radio (?????)", + "toggle-type": "radio", + "toggle-checked": "indeterminate" + } + ] + }, ] diff --git a/tests/test-gtk-reorder-server.c b/tests/test-gtk-reorder-server.c index 2fd9bf7..eee9bb8 100644 --- a/tests/test-gtk-reorder-server.c +++ b/tests/test-gtk-reorder-server.c @@ -66,7 +66,7 @@ timer_func (gpointer data) for (i = 0; i < NUMBER_ENTRIES; i++) { g_debug("Putting entry '%d' at position '%d'", i, ordering[test][i]); dbusmenu_menuitem_child_reorder(root, entries[i], ordering[test][i]); - dbusmenu_menuitem_property_set(entries[i], "label", names[i]); + dbusmenu_menuitem_property_set(entries[i], "label", names[ordering[test][i]]); } test++; |