summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorWaldo Bastian <waldo.bastian@intel.com>2006-09-10 00:12:04 +0000
committerWaldo Bastian <waldo.bastian@intel.com>2006-09-10 00:12:04 +0000
commit311ddafb415243674e666af11be1cf68b9af1360 (patch)
tree519e88aed7e0970e1a28ca6113bb5cb827f23ca4 /tests
parent234d8f46ff6cb61bc976e563ca4cb66af936eda6 (diff)
Addtional test for xdg-desktop-menu
Diffstat (limited to 'tests')
-rw-r--r--tests/xdg-desktop-menu/data/menu_item_dummy2.desktop5
-rwxr-xr-xtests/xdg-desktop-menu/t.15-menu_advanced_install87
2 files changed, 92 insertions, 0 deletions
diff --git a/tests/xdg-desktop-menu/data/menu_item_dummy2.desktop b/tests/xdg-desktop-menu/data/menu_item_dummy2.desktop
new file mode 100644
index 0000000..7a3380f
--- /dev/null
+++ b/tests/xdg-desktop-menu/data/menu_item_dummy2.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Application
+Name=EXTRA ITEM 2
+Exec=touch xdgtestdata-dummy.tmp
+StartupNotify=false
diff --git a/tests/xdg-desktop-menu/t.15-menu_advanced_install b/tests/xdg-desktop-menu/t.15-menu_advanced_install
new file mode 100755
index 0000000..502529a
--- /dev/null
+++ b/tests/xdg-desktop-menu/t.15-menu_advanced_install
@@ -0,0 +1,87 @@
+#!/bin/bash
+
+## Include utility functions.
+. "$XDG_TEST_DIR/include/testassertions.sh"
+. "$XDG_TEST_DIR/include/testcontrol.sh"
+
+## Test function
+test_menu_advanced_install() {
+## Begin the test.
+test_start "$FUNCNAME: verify submenus are handled correctly"
+
+# Dependencies section
+test_init
+
+USERPATH="$HOME/.local:$HOME/.config"
+
+set_no_display
+
+# Generate .desktop file
+use_file "$XDG_TEST_DIR/xdg-desktop-menu/data/menu_item_test.desktop" DESKTOP
+use_file "$XDG_TEST_DIR/xdg-desktop-menu/data/menu_item_dummy.desktop" DESKTOP2
+use_file "$XDG_TEST_DIR/xdg-desktop-menu/data/menu_item_dummy2.desktop" DESKTOP3
+use_file "$XDG_TEST_DIR/xdg-desktop-menu/data/menu_install.directory" DIRECTORY
+
+edit_file "$DIRECTORY" 'XDG UTILS TEST' MENU_NAME "MENU $XDG_TEST_SHORTID"
+
+edit_file "$DESKTOP" 'xdg-test-menu-item-install.tmp' CREATEFILE
+edit_file "$DESKTOP" 'Test Menu Item Install' ITEM_TEXT "TEST $XDG_TEST_SHORTID"
+edit_file "$DESKTOP" '/tmp' WORK_DIR "$XDG_TEST_TMPDIR"
+
+assert_file "$DESKTOP"
+assert_file "$DIRECTORY"
+
+# Verify the test icon is not installed already.
+assert_file_not_in_path "$DESKTOP" "$USERPATH"
+assert_file_not_in_path "$DIRECTORY" "$USERPATH"
+
+# Test steps section
+test_procedure
+
+assert_exit 0 xdg-desktop-menu install "$DIRECTORY" "$DESKTOP" "$DESKTOP2" "$DESKTOP3"
+assert_nostdout
+assert_nostderr
+
+if [ `whoami` != 'root' ]; then
+assert_file_in_path "$DESKTOP" "$USERPATH"
+assert_file_in_path "$DESKTOP2" "$USERPATH"
+assert_file_in_path "$DESKTOP3" "$USERPATH"
+assert_file_in_path "$DIRECTORY" "$USERPATH"
+fi
+
+if [ -z "$XDG_TEST_NO_INTERACTIVE" -a `whoami` != 'root' ]; then
+assert_interactive "Is there a menu in <main> called '$MENU_NAME'?" y
+assert_interactive "Are there exactly 3 items in '<main>/$MENU_NAME' called 'EXTRA ITEM', 'EXTRA ITEM 2' and '$ITEM_TEXT'?" y
+fi
+
+assert_exit 0 xdg-desktop-menu uninstall "$DIRECTORY" "$DESKTOP3"
+assert_nostdout
+assert_nostderr
+
+if [ `whoami` != 'root' ]; then
+assert_file_in_path "$DESKTOP" "$USERPATH"
+assert_file_in_path "$DESKTOP2" "$USERPATH"
+assert_file_not_in_path "$DESKTOP3" "$USERPATH"
+assert_file_in_path "$DIRECTORY" "$USERPATH"
+fi
+
+if [ -z "$XDG_TEST_NO_INTERACTIVE" -a `whoami` != 'root' ]; then
+assert_interactive "Is there still a menu in <main> called '$MENU_NAME'?" y
+assert_interactive "Are there exactly 2 items in '<main>/$MENU_NAME' called 'EXTRA ITEM' and '$ITEM_TEXT'?" y
+fi
+
+assert_exit 0 xdg-desktop-menu uninstall "$DIRECTORY" "$DESKTOP" "$DESKTOP2"
+assert_nostdout
+assert_nostderr
+
+if [ `whoami` != 'root' ]; then
+assert_file_not_in_path "$DESKTOP" "$USERPATH"
+assert_file_not_in_path "$DESKTOP2" "$USERPATH"
+assert_file_not_in_path "$DESKTOP3" "$USERPATH"
+assert_file_not_in_path "$DIRECTORY" "$USERPATH"
+fi
+
+test_result
+}
+
+run_test test_menu_advanced_install