summaryrefslogtreecommitdiffstats
path: root/menu/tests/tests
diff options
context:
space:
mode:
authorWaldo Bastian <waldo.bastian@intel.com>2007-01-19 01:14:02 +0000
committerWaldo Bastian <waldo.bastian@intel.com>2007-01-19 01:14:02 +0000
commit612c49cc74998f1fcff39b1cfde6a01f3c18c069 (patch)
tree1829be49189e6858afee76509845ad31f0ee6b74 /menu/tests/tests
parent7d249792235d0f3b69f833f89bef545a367f0b6b (diff)
downloadxdg-specs-612c49cc74998f1fcff39b1cfde6a01f3c18c069.tar.xz
Added support for LSB's TET test framework Renamed tests to more
* Added support for LSB's TET test framework * Renamed tests to more meaningful names (see ChangeLog for details)
Diffstat (limited to 'menu/tests/tests')
-rw-r--r--menu/tests/tests/1/test24
-rw-r--r--menu/tests/tests/5/test25
-rw-r--r--menu/tests/tests/All/result (renamed from menu/tests/tests/5/result)0
-rw-r--r--menu/tests/tests/All/test26
-rw-r--r--menu/tests/tests/And/result (renamed from menu/tests/tests/6/result)0
-rw-r--r--menu/tests/tests/And/test (renamed from menu/tests/tests/7/test)15
-rw-r--r--menu/tests/tests/AppDir-relative/result (renamed from menu/tests/tests/g/result)0
-rw-r--r--menu/tests/tests/AppDir-relative/test27
-rw-r--r--menu/tests/tests/AppDir/test4
-rw-r--r--menu/tests/tests/Category/result (renamed from menu/tests/tests/1/result)0
-rw-r--r--menu/tests/tests/Category/test29
-rw-r--r--menu/tests/tests/DefaultMergeDirs/result (renamed from menu/tests/tests/i/result)0
-rw-r--r--menu/tests/tests/DefaultMergeDirs/test (renamed from menu/tests/tests/i/test)19
-rw-r--r--menu/tests/tests/Deleted/result (renamed from menu/tests/tests/3/result)0
-rw-r--r--menu/tests/tests/Deleted/test (renamed from menu/tests/tests/3/test)15
-rw-r--r--menu/tests/tests/DesktopFileID/result (renamed from menu/tests/tests/a/result)0
-rw-r--r--menu/tests/tests/DesktopFileID/test26
-rw-r--r--menu/tests/tests/Directory/result (renamed from menu/tests/tests/c/result)0
-rw-r--r--menu/tests/tests/Directory/test (renamed from menu/tests/tests/c/test)17
-rw-r--r--menu/tests/tests/DirectoryDir-relative/result (renamed from menu/tests/tests/h/result)0
-rw-r--r--menu/tests/tests/DirectoryDir-relative/test28
-rw-r--r--menu/tests/tests/DirectoryDir/test4
-rw-r--r--menu/tests/tests/Exclude/result (renamed from menu/tests/tests/9/result)0
-rw-r--r--menu/tests/tests/Exclude/test (renamed from menu/tests/tests/9/test)15
-rw-r--r--menu/tests/tests/Filename/result (renamed from menu/tests/tests/7/result)0
-rw-r--r--menu/tests/tests/Filename/test (renamed from menu/tests/tests/6/test)15
-rw-r--r--menu/tests/tests/LegacyDir-Move/result (renamed from menu/tests/tests/w/result)0
-rw-r--r--menu/tests/tests/LegacyDir-Move/test (renamed from menu/tests/tests/w/test)21
-rw-r--r--menu/tests/tests/LegacyDir-relative/result (renamed from menu/tests/tests/e/result)0
-rw-r--r--menu/tests/tests/LegacyDir-relative/test (renamed from menu/tests/tests/e/test)27
-rw-r--r--menu/tests/tests/Merge-combined/result (renamed from menu/tests/tests/y/result)0
-rw-r--r--menu/tests/tests/Merge-combined/test (renamed from menu/tests/tests/y/test)21
-rw-r--r--menu/tests/tests/MergeDir-absolute/test3
-rw-r--r--menu/tests/tests/MergeDir-relative/result (renamed from menu/tests/tests/j/result)0
-rw-r--r--menu/tests/tests/MergeDir-relative/test61
-rw-r--r--menu/tests/tests/MergeFile-absolute/test3
-rw-r--r--menu/tests/tests/MergeFile-parent/result (renamed from menu/tests/tests/k/result)0
-rw-r--r--menu/tests/tests/MergeFile-parent/test (renamed from menu/tests/tests/q/test)23
-rw-r--r--menu/tests/tests/MergeFile-path/result (renamed from menu/tests/tests/r/result)0
-rw-r--r--menu/tests/tests/MergeFile-path/test (renamed from menu/tests/tests/r/test)23
-rw-r--r--menu/tests/tests/MergeFile-recursive/result (renamed from menu/tests/tests/l/result)0
-rw-r--r--menu/tests/tests/MergeFile-recursive/test (renamed from menu/tests/tests/u/test)24
-rw-r--r--menu/tests/tests/MergeFile-relative/result (renamed from menu/tests/tests/p/result)0
-rw-r--r--menu/tests/tests/MergeFile-relative/test (renamed from menu/tests/tests/k/test)21
-rw-r--r--menu/tests/tests/MergeFile2/result (renamed from menu/tests/tests/q/result)0
-rw-r--r--menu/tests/tests/MergeFile2/test (renamed from menu/tests/tests/l/test)25
-rw-r--r--menu/tests/tests/MergeFile3/result (renamed from menu/tests/tests/u/result)0
-rw-r--r--menu/tests/tests/MergeFile3/test (renamed from menu/tests/tests/p/test)23
-rw-r--r--menu/tests/tests/Move-collapsing/result (renamed from menu/tests/tests/f/result)0
-rw-r--r--menu/tests/tests/Move-collapsing/test (renamed from menu/tests/tests/f/test)15
-rw-r--r--menu/tests/tests/Move-ordering/result (renamed from menu/tests/tests/t/result)0
-rw-r--r--menu/tests/tests/Move-ordering/test (renamed from menu/tests/tests/t/test)18
-rw-r--r--menu/tests/tests/Move-submenu/result (renamed from menu/tests/tests/x/result)0
-rw-r--r--menu/tests/tests/Move-submenu/test (renamed from menu/tests/tests/x/test)15
-rw-r--r--menu/tests/tests/Move/result (renamed from menu/tests/tests/4/result)0
-rw-r--r--menu/tests/tests/Move/test (renamed from menu/tests/tests/4/test)15
-rw-r--r--menu/tests/tests/NoDisplay/result (renamed from menu/tests/tests/m/result)0
-rw-r--r--menu/tests/tests/NoDisplay/test (renamed from menu/tests/tests/m/test)16
-rw-r--r--menu/tests/tests/NoDisplay2/result (renamed from menu/tests/tests/n/result)0
-rw-r--r--menu/tests/tests/NoDisplay2/test (renamed from menu/tests/tests/n/test)16
-rw-r--r--menu/tests/tests/NotOnlyUnallocated-default/result (renamed from menu/tests/tests/v/result)0
-rw-r--r--menu/tests/tests/NotOnlyUnallocated-default/test (renamed from menu/tests/tests/v/test)16
-rw-r--r--menu/tests/tests/OnlyUnallocated/result (renamed from menu/tests/tests/2/result)0
-rw-r--r--menu/tests/tests/OnlyUnallocated/test (renamed from menu/tests/tests/2/test)14
-rw-r--r--menu/tests/tests/Or/result (renamed from menu/tests/tests/8/result)0
-rw-r--r--menu/tests/tests/Or/test (renamed from menu/tests/tests/8/test)15
-rw-r--r--menu/tests/tests/a/test25
-rw-r--r--menu/tests/tests/boolean-logic/result (renamed from menu/tests/tests/o/result)0
-rw-r--r--menu/tests/tests/boolean-logic/test36
-rw-r--r--menu/tests/tests/desktop-name-collision/result (renamed from menu/tests/tests/s/result)0
-rw-r--r--menu/tests/tests/desktop-name-collision/test53
-rw-r--r--menu/tests/tests/g/test25
-rw-r--r--menu/tests/tests/h/test28
-rw-r--r--menu/tests/tests/j/test42
-rw-r--r--menu/tests/tests/menu-multiple-matching/result (renamed from menu/tests/tests/b/result)0
-rw-r--r--menu/tests/tests/menu-multiple-matching/test (renamed from menu/tests/tests/b/test)15
-rw-r--r--menu/tests/tests/o/test34
-rw-r--r--menu/tests/tests/official-categories/categories.list10
-rw-r--r--menu/tests/tests/official-categories/test73
-rw-r--r--menu/tests/tests/official-categories/unique-entry.desktop9
-rw-r--r--menu/tests/tests/s/test51
-rw-r--r--menu/tests/tests/submenu-collision/result (renamed from menu/tests/tests/d/result)0
-rw-r--r--menu/tests/tests/submenu-collision/test (renamed from menu/tests/tests/d/test)15
83 files changed, 642 insertions, 478 deletions
diff --git a/menu/tests/tests/1/test b/menu/tests/tests/1/test
deleted file mode 100644
index 57cc0bb..0000000
--- a/menu/tests/tests/1/test
+++ /dev/null
@@ -1,24 +0,0 @@
-echo ">>> the <Category> tag"
-
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
-
-<Menu>
- <Name>KDE</Name>
- <!-- Search the default locations -->
- <DefaultAppDirs/>
-
- <Menu>
- <Name>Editors</Name>
- <Include>
- <Category>TextEditor</Category>
- </Include>
- </Menu>
-</Menu>
-EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop
diff --git a/menu/tests/tests/5/test b/menu/tests/tests/5/test
deleted file mode 100644
index 45c734d..0000000
--- a/menu/tests/tests/5/test
+++ /dev/null
@@ -1,25 +0,0 @@
-echo ">>> the <All> Keyword"
-
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
-
-<Menu>
- <Name>KDE</Name>
- <!-- Search the default locations -->
- <DefaultAppDirs/>
-
- <Menu>
- <Name>Applications</Name>
- <Include>
- <All/>
- </Include>
- </Menu>
-</Menu>
-EOF
-
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
diff --git a/menu/tests/tests/5/result b/menu/tests/tests/All/result
index fc75a82..fc75a82 100644
--- a/menu/tests/tests/5/result
+++ b/menu/tests/tests/All/result
diff --git a/menu/tests/tests/All/test b/menu/tests/tests/All/test
new file mode 100644
index 0000000..e97bddc
--- /dev/null
+++ b/menu/tests/tests/All/test
@@ -0,0 +1,26 @@
+TEST_PURPOSE="<All> Keyword"
+
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+ <!-- Search the default locations -->
+ <DefaultAppDirs/>
+
+ <Menu>
+ <Name>Applications</Name>
+ <Include>
+ <All/>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/6/result b/menu/tests/tests/And/result
index dc159fa..dc159fa 100644
--- a/menu/tests/tests/6/result
+++ b/menu/tests/tests/And/result
diff --git a/menu/tests/tests/7/test b/menu/tests/tests/And/test
index ac4570f..31571db 100644
--- a/menu/tests/tests/7/test
+++ b/menu/tests/tests/And/test
@@ -1,8 +1,9 @@
-echo ">>> the <And> Keyword"
+TEST_PURPOSE="<And> Keyword"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -23,6 +24,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/g/result b/menu/tests/tests/AppDir-relative/result
index 9e1d622..9e1d622 100644
--- a/menu/tests/tests/g/result
+++ b/menu/tests/tests/AppDir-relative/result
diff --git a/menu/tests/tests/AppDir-relative/test b/menu/tests/tests/AppDir-relative/test
new file mode 100644
index 0000000..75bd201
--- /dev/null
+++ b/menu/tests/tests/AppDir-relative/test
@@ -0,0 +1,27 @@
+TEST_PURPOSE="<AppDir> relative path tag ..."
+
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+ <!-- Search the default locations -->
+ <AppDir>apps</AppDir>
+
+ <Menu>
+ <Name>Applications</Name>
+ <Include>
+ <Category>TextEditor</Category>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+ # Install .desktop files
+ installData "${XDG_CONFIG_DIR}/menus/apps" kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ installDataAs "${XDG_CONFIG_DIR}/menus/apps" kwrite.desktop should_be_ignored.notdesktop
+}
diff --git a/menu/tests/tests/AppDir/test b/menu/tests/tests/AppDir/test
new file mode 100644
index 0000000..8faff91
--- /dev/null
+++ b/menu/tests/tests/AppDir/test
@@ -0,0 +1,4 @@
+. tests/AppDir-relative/test
+export PATH_EXPANSION='${XDG_CONFIG_DIR}/menus/'
+TEST_PURPOSE="<AppDir> absolute path"
+
diff --git a/menu/tests/tests/1/result b/menu/tests/tests/Category/result
index 73b00c9..73b00c9 100644
--- a/menu/tests/tests/1/result
+++ b/menu/tests/tests/Category/result
diff --git a/menu/tests/tests/Category/test b/menu/tests/tests/Category/test
new file mode 100644
index 0000000..3ee0777
--- /dev/null
+++ b/menu/tests/tests/Category/test
@@ -0,0 +1,29 @@
+TEST_PURPOSE="<Category> tag"
+
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+ <!-- Search the default locations -->
+ <DefaultAppDirs/>
+
+ <Menu>
+ <Name>Editors</Name>
+ <Include>
+ <Category>TextEditor</Category>
+ <!-- note it's lowercase, this is intentional to verify
+ it's a case sensitive implementation -->
+ <Category>application</Category>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+# Install .desktop files, freecell is daft but intentional to verify category support is case sensitive
+installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop freecell.desktop
+}
diff --git a/menu/tests/tests/i/result b/menu/tests/tests/DefaultMergeDirs/result
index 9e17189..9e17189 100644
--- a/menu/tests/tests/i/result
+++ b/menu/tests/tests/DefaultMergeDirs/result
diff --git a/menu/tests/tests/i/test b/menu/tests/tests/DefaultMergeDirs/test
index 26c471e..3b570f2 100644
--- a/menu/tests/tests/i/test
+++ b/menu/tests/tests/DefaultMergeDirs/test
@@ -1,8 +1,9 @@
-echo ">>> the <DefaultMergeDirs> tag ..."
+TEST_PURPOSE="<DefaultMergeDirs> tag ..."
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -20,9 +21,8 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
-./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/test.menu <<EOF
+ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -38,5 +38,6 @@ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+}
diff --git a/menu/tests/tests/3/result b/menu/tests/tests/Deleted/result
index c121419..c121419 100644
--- a/menu/tests/tests/3/result
+++ b/menu/tests/tests/Deleted/result
diff --git a/menu/tests/tests/3/test b/menu/tests/tests/Deleted/test
index 2ec4ebc..db7a413 100644
--- a/menu/tests/tests/3/test
+++ b/menu/tests/tests/Deleted/test
@@ -1,8 +1,9 @@
-echo ">>> the <Deleted> tag"
+TEST_PURPOSE="<Deleted> tag"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -29,6 +30,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/a/result b/menu/tests/tests/DesktopFileID/result
index 9629384..9629384 100644
--- a/menu/tests/tests/a/result
+++ b/menu/tests/tests/DesktopFileID/result
diff --git a/menu/tests/tests/DesktopFileID/test b/menu/tests/tests/DesktopFileID/test
new file mode 100644
index 0000000..ae2c679
--- /dev/null
+++ b/menu/tests/tests/DesktopFileID/test
@@ -0,0 +1,26 @@
+TEST_PURPOSE="DesktopFileIDs in submenus"
+
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+ <!-- Search the default locations -->
+ <DefaultAppDirs/>
+
+ <Menu>
+ <Name>Applications</Name>
+ <Include>
+ <Category>Game</Category>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications/company/games gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/c/result b/menu/tests/tests/Directory/result
index 2cd1d1f..2cd1d1f 100644
--- a/menu/tests/tests/c/result
+++ b/menu/tests/tests/Directory/result
diff --git a/menu/tests/tests/c/test b/menu/tests/tests/Directory/test
index 3751fab..fe7e126 100644
--- a/menu/tests/tests/c/test
+++ b/menu/tests/tests/Directory/test
@@ -1,8 +1,9 @@
-echo ">>> the <Directory> tag ..."
+TEST_PURPOSE="<Directory> tag ..."
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -22,7 +23,7 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
-installData ${XDG_DATA_DIR}/desktop-directories apps.directory
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ installData ${XDG_DATA_DIR}/desktop-directories apps.directory
+}
diff --git a/menu/tests/tests/h/result b/menu/tests/tests/DirectoryDir-relative/result
index 2cd1d1f..2cd1d1f 100644
--- a/menu/tests/tests/h/result
+++ b/menu/tests/tests/DirectoryDir-relative/result
diff --git a/menu/tests/tests/DirectoryDir-relative/test b/menu/tests/tests/DirectoryDir-relative/test
new file mode 100644
index 0000000..4a5e039
--- /dev/null
+++ b/menu/tests/tests/DirectoryDir-relative/test
@@ -0,0 +1,28 @@
+TEST_PURPOSE="relative <DirectoryDir> tag ..."
+
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+ <!-- Search the default locations -->
+ <DefaultAppDirs/>
+ <DirectoryDir>${PATH_EXPANSION}desktop-directories</DirectoryDir>
+
+ <Menu>
+ <Name>Applications</Name>
+ <Directory>apps.directory</Directory>
+ <Include>
+ <Category>TextEditor</Category>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ installData ${XDG_CONFIG_DIR}/menus/desktop-directories apps.directory
+}
diff --git a/menu/tests/tests/DirectoryDir/test b/menu/tests/tests/DirectoryDir/test
new file mode 100644
index 0000000..dc8bb3b
--- /dev/null
+++ b/menu/tests/tests/DirectoryDir/test
@@ -0,0 +1,4 @@
+. tests/DirectoryDir-relative/test
+export PATH_EXPANSION='${XDG_CONFIG_DIR}/menus/'
+TEST_PURPOSE="<DirectoryDir> absolute path"
+
diff --git a/menu/tests/tests/9/result b/menu/tests/tests/Exclude/result
index dfbb122..dfbb122 100644
--- a/menu/tests/tests/9/result
+++ b/menu/tests/tests/Exclude/result
diff --git a/menu/tests/tests/9/test b/menu/tests/tests/Exclude/test
index c3c6321..728ec99 100644
--- a/menu/tests/tests/9/test
+++ b/menu/tests/tests/Exclude/test
@@ -1,8 +1,9 @@
-echo ">>> the <Exclude> Keyword"
+TEST_PURPOSE="<Exclude> Keyword"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -26,6 +27,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/7/result b/menu/tests/tests/Filename/result
index dc159fa..dc159fa 100644
--- a/menu/tests/tests/7/result
+++ b/menu/tests/tests/Filename/result
diff --git a/menu/tests/tests/6/test b/menu/tests/tests/Filename/test
index ef1d734..b9d021d 100644
--- a/menu/tests/tests/6/test
+++ b/menu/tests/tests/Filename/test
@@ -1,8 +1,9 @@
-echo ">>> the <Filename> tag"
+TEST_PURPOSE="<Filename> tag"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -20,6 +21,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/w/result b/menu/tests/tests/LegacyDir-Move/result
index 9a2b9db..9a2b9db 100644
--- a/menu/tests/tests/w/result
+++ b/menu/tests/tests/LegacyDir-Move/result
diff --git a/menu/tests/tests/w/test b/menu/tests/tests/LegacyDir-Move/test
index 45fb03a..7e6e85e 100644
--- a/menu/tests/tests/w/test
+++ b/menu/tests/tests/LegacyDir-Move/test
@@ -1,11 +1,12 @@
-echo ">>> Move entries from <LegacyDir>"
+TEST_PURPOSE="move entries from <LegacyDir>"
-LEGACY_DIR=${MENUTESTDIR}/legacy_applnk
-export LEGACY_DIR
+test_code() {
+ LEGACY_DIR=${MENUTESTDIR}/legacy_applnk
+ export LEGACY_DIR
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -31,8 +32,8 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
+ # Install .desktop files
-# Install .desktop files
-
-installData ${LEGACY_DIR} Home.desktop
-installData ${LEGACY_DIR}/Development gideon-legacy.desktop
+ installData ${LEGACY_DIR} Home.desktop
+ installData ${LEGACY_DIR}/Development gideon-legacy.desktop
+}
diff --git a/menu/tests/tests/e/result b/menu/tests/tests/LegacyDir-relative/result
index 0c2af9b..0c2af9b 100644
--- a/menu/tests/tests/e/result
+++ b/menu/tests/tests/LegacyDir-relative/result
diff --git a/menu/tests/tests/e/test b/menu/tests/tests/LegacyDir-relative/test
index 33303f4..5082590 100644
--- a/menu/tests/tests/e/test
+++ b/menu/tests/tests/LegacyDir-relative/test
@@ -1,11 +1,12 @@
-echo ">>> Simple <LegacyDir> test"
+TEST_PURPOSE="Simple <LegacyDir> test"
-LEGACY_DIR=${MENUTESTDIR}/legacy_applnk
-export LEGACY_DIR
+test_code() {
+ LEGACY_DIR=${MENUTESTDIR}/legacy_applnk
+ export LEGACY_DIR
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -33,13 +34,9 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop
-
-installData ${LEGACY_DIR}/Development gideon-legacy.desktop kbabel.desktop quanta.desktop
-
-installData ${LEGACY_DIR} Kfind.desktop Home.desktop Help.desktop
-
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop
+ installData ${LEGACY_DIR}/Development gideon-legacy.desktop kbabel.desktop quanta.desktop
+ installData ${LEGACY_DIR} Kfind.desktop Home.desktop Help.desktop
+}
diff --git a/menu/tests/tests/y/result b/menu/tests/tests/Merge-combined/result
index 999bd1e..999bd1e 100644
--- a/menu/tests/tests/y/result
+++ b/menu/tests/tests/Merge-combined/result
diff --git a/menu/tests/tests/y/test b/menu/tests/tests/Merge-combined/test
index 1c20959..07cfab3 100644
--- a/menu/tests/tests/y/test
+++ b/menu/tests/tests/Merge-combined/test
@@ -1,11 +1,12 @@
-echo ">>> Merge Two Menus and a Legacy Menu"
+TEST_PURPOSE="Merge Two Menus and a Legacy Menu"
-LEGACY_DIR=${MENUTESTDIR}/legacy_applnk
-export LEGACY_DIR
+test_code() {
+ LEGACY_DIR=${MENUTESTDIR}/legacy_applnk
+ export LEGACY_DIR
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -38,8 +39,8 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
+ # Install .desktop files
-# Install .desktop files
-
-installData ${LEGACY_DIR}/Development gideon-legacy.desktop
-installData ${XDG_DATA_DIR}/applications kate.desktop kwrite.desktop KEdit.desktop
+ installData ${LEGACY_DIR}/Development gideon-legacy.desktop
+ installData ${XDG_DATA_DIR}/applications kate.desktop kwrite.desktop KEdit.desktop
+}
diff --git a/menu/tests/tests/MergeDir-absolute/test b/menu/tests/tests/MergeDir-absolute/test
new file mode 100644
index 0000000..db6c895
--- /dev/null
+++ b/menu/tests/tests/MergeDir-absolute/test
@@ -0,0 +1,3 @@
+. tests/MergeDir-relative/test
+export PATH_EXPANSION='${XDG_CONFIG_DIR}/menus/'
+export TEST_PURPOSE="<MergeDir> absolute path test"
diff --git a/menu/tests/tests/j/result b/menu/tests/tests/MergeDir-relative/result
index 9e17189..9e17189 100644
--- a/menu/tests/tests/j/result
+++ b/menu/tests/tests/MergeDir-relative/result
diff --git a/menu/tests/tests/MergeDir-relative/test b/menu/tests/tests/MergeDir-relative/test
new file mode 100644
index 0000000..ba96b1a
--- /dev/null
+++ b/menu/tests/tests/MergeDir-relative/test
@@ -0,0 +1,61 @@
+TEST_PURPOSE="<MergeDir> relative path ..."
+
+test_code() {
+ # Generate applications.menu
+ mkdir -p "${XDG_CONFIG_DIR}/menus"
+ ./expand > "${XDG_CONFIG_DIR}/menus/applications.menu" <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+ <DefaultAppDirs/>
+ <MergeDir>${PATH_EXPANSION}applications-merged</MergeDir>
+
+ <Menu>
+ <Name>Applications</Name>
+ <Include>
+ <Category>TextEditor</Category>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+ mkdir "${XDG_CONFIG_DIR}/menus/applications-merged/"
+ ./expand > "${XDG_CONFIG_DIR}/menus/applications-merged/test.menu" <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+
+ <Menu>
+ <Name>Development</Name>
+ <Include>
+ <Category>Development</Category>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+ # intentional crap entry to verify it does _not_ get picked up
+ ./expand > "${XDG_CONFIG_DIR}/menus/applications-merged/dar.notmenu" <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+
+ <Menu>
+ <Name>testing</Name>
+ <Include>
+ <All/>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+
+ # Install .desktop files
+ installData "${XDG_DATA_DIR}/applications" kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+}
diff --git a/menu/tests/tests/MergeFile-absolute/test b/menu/tests/tests/MergeFile-absolute/test
new file mode 100644
index 0000000..24cf669
--- /dev/null
+++ b/menu/tests/tests/MergeFile-absolute/test
@@ -0,0 +1,3 @@
+. tests/MergeFile-relative/test
+export PATH_EXPANSION='${XDG_CONFIG_DIR}/menus/'
+export TEST_PURPOSE="<MergeFile> absolute path"
diff --git a/menu/tests/tests/k/result b/menu/tests/tests/MergeFile-parent/result
index 9e17189..9e17189 100644
--- a/menu/tests/tests/k/result
+++ b/menu/tests/tests/MergeFile-parent/result
diff --git a/menu/tests/tests/q/test b/menu/tests/tests/MergeFile-parent/test
index 6e071c6..00ed006 100644
--- a/menu/tests/tests/q/test
+++ b/menu/tests/tests/MergeFile-parent/test
@@ -1,10 +1,11 @@
-echo ">>> the <MergeFile> tag ..."
+TEST_PURPOSE="<MergeFile> tag ..."
-# Tests the type attribute in <MergeFile>
+test_code() {
+ # Tests the type attribute in <MergeFile>
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_HOME}/menus
-./expand > ${XDG_CONFIG_HOME}/menus/${DIRTY_HACK}applications.menu <<EOF
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_HOME}/menus
+ ./expand > ${XDG_CONFIG_HOME}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -22,9 +23,8 @@ mkdir -p ${XDG_CONFIG_HOME}/menus
</Menu>
EOF
-
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/test.menu <<EOF
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -40,7 +40,7 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -56,5 +56,6 @@ EOF
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/r/result b/menu/tests/tests/MergeFile-path/result
index fbe635e..fbe635e 100644
--- a/menu/tests/tests/r/result
+++ b/menu/tests/tests/MergeFile-path/result
diff --git a/menu/tests/tests/r/test b/menu/tests/tests/MergeFile-path/test
index 6facb91..97daa5c 100644
--- a/menu/tests/tests/r/test
+++ b/menu/tests/tests/MergeFile-path/test
@@ -1,10 +1,11 @@
-echo ">>> the <MergeFile> tag ..."
+TEST_PURPOSE="<MergeFile> tag ..."
-# Tests the type attribute in <MergeFile>
+test_code() {
+ # Tests the type attribute in <MergeFile>
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_HOME}/menus
-./expand > ${XDG_CONFIG_HOME}/menus/${DIRTY_HACK}applications.menu <<EOF
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_HOME}/menus
+ ./expand > ${XDG_CONFIG_HOME}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -22,9 +23,8 @@ mkdir -p ${XDG_CONFIG_HOME}/menus
</Menu>
EOF
-
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/test.menu <<EOF
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -40,7 +40,7 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -56,5 +56,6 @@ EOF
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/l/result b/menu/tests/tests/MergeFile-recursive/result
index 9e17189..9e17189 100644
--- a/menu/tests/tests/l/result
+++ b/menu/tests/tests/MergeFile-recursive/result
diff --git a/menu/tests/tests/u/test b/menu/tests/tests/MergeFile-recursive/test
index 83e3700..4dbab21 100644
--- a/menu/tests/tests/u/test
+++ b/menu/tests/tests/MergeFile-recursive/test
@@ -1,10 +1,9 @@
-echo ">>> recursive <MergeFile>s ..."
+TEST_PURPOSE="test elaborate recursive look in <MergeFile>s"
-# Test elaborate recursive loop in <MergeFile>s
-
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code(){
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -23,8 +22,8 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
EOF
-mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
-./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/test.menu <<EOF
+ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -35,8 +34,8 @@ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
</Menu>
EOF
-mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/extra/
-./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/extra/test.menu <<EOF
+ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/extra/
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/extra/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -54,5 +53,6 @@ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/extra/
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+}
diff --git a/menu/tests/tests/p/result b/menu/tests/tests/MergeFile-relative/result
index 9e17189..9e17189 100644
--- a/menu/tests/tests/p/result
+++ b/menu/tests/tests/MergeFile-relative/result
diff --git a/menu/tests/tests/k/test b/menu/tests/tests/MergeFile-relative/test
index 2a037b7..c3478db 100644
--- a/menu/tests/tests/k/test
+++ b/menu/tests/tests/MergeFile-relative/test
@@ -1,15 +1,16 @@
-echo ">>> the <MergeFile> tag ..."
+TEST_PURPOSE="<MergeFile> tag relative path"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code(){
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<Name>KDE</Name>
<DefaultAppDirs/>
- <MergeFile>applications-merged/test.menu</MergeFile>
+ <MergeFile>${PATH_EXPANSION}applications-merged/test.menu</MergeFile>
<Menu>
<Name>Applications</Name>
@@ -20,9 +21,8 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
-./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/test.menu <<EOF
+ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<!-- test -->
@@ -39,5 +39,6 @@ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+}
diff --git a/menu/tests/tests/q/result b/menu/tests/tests/MergeFile2/result
index 9e17189..9e17189 100644
--- a/menu/tests/tests/q/result
+++ b/menu/tests/tests/MergeFile2/result
diff --git a/menu/tests/tests/l/test b/menu/tests/tests/MergeFile2/test
index 3d6bfcd..e5b1591 100644
--- a/menu/tests/tests/l/test
+++ b/menu/tests/tests/MergeFile2/test
@@ -1,10 +1,11 @@
-echo ">>> the <MergeFile> tag ..."
+TEST_PURPOSE="<MergeFile> tag ..."
-# Tests the use of relative paths in <MergeFile>
+test_code() {
+ # Tests the use of relative paths in <MergeFile>
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -22,9 +23,8 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
-./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/test.menu <<EOF
+ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -35,8 +35,8 @@ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
</Menu>
EOF
-mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/extra/
-./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/extra/test.menu <<EOF
+ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/extra/
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/extra/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -52,5 +52,6 @@ mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/extra/
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+}
diff --git a/menu/tests/tests/u/result b/menu/tests/tests/MergeFile3/result
index 9e17189..9e17189 100644
--- a/menu/tests/tests/u/result
+++ b/menu/tests/tests/MergeFile3/result
diff --git a/menu/tests/tests/p/test b/menu/tests/tests/MergeFile3/test
index 3341eec..8781888 100644
--- a/menu/tests/tests/p/test
+++ b/menu/tests/tests/MergeFile3/test
@@ -1,10 +1,11 @@
-echo ">>> the <MergeFile> tag ..."
+TEST_PURPOSE="<MergeFile> tag ..."
-# Tests the use of relative paths in <MergeFile>
+test_code() {
+ # Tests the use of relative paths in <MergeFile>
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -22,8 +23,7 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-./expand > ${XDG_CONFIG_DIR}/menus/test.menu <<EOF
+ ./expand > ${XDG_CONFIG_DIR}/menus/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -34,8 +34,8 @@ EOF
</Menu>
EOF
-mkdir ${XDG_CONFIG_DIR}/menus/extra/
-./expand > ${XDG_CONFIG_DIR}/menus/extra/test.menu <<EOF
+ mkdir ${XDG_CONFIG_DIR}/menus/extra/
+ ./expand > ${XDG_CONFIG_DIR}/menus/extra/test.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -51,5 +51,6 @@ mkdir ${XDG_CONFIG_DIR}/menus/extra/
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+}
diff --git a/menu/tests/tests/f/result b/menu/tests/tests/Move-collapsing/result
index 10ccec6..10ccec6 100644
--- a/menu/tests/tests/f/result
+++ b/menu/tests/tests/Move-collapsing/result
diff --git a/menu/tests/tests/f/test b/menu/tests/tests/Move-collapsing/test
index 5d673d8..b842b0a 100644
--- a/menu/tests/tests/f/test
+++ b/menu/tests/tests/Move-collapsing/test
@@ -1,8 +1,9 @@
-echo ">>> a complicated <Move> operation"
+TEST_PURPOSE="complicated <Move> operation"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -34,6 +35,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/t/result b/menu/tests/tests/Move-ordering/result
index b941f58..b941f58 100644
--- a/menu/tests/tests/t/result
+++ b/menu/tests/tests/Move-ordering/result
diff --git a/menu/tests/tests/t/test b/menu/tests/tests/Move-ordering/test
index bbe7568..f8883b9 100644
--- a/menu/tests/tests/t/test
+++ b/menu/tests/tests/Move-ordering/test
@@ -1,10 +1,11 @@
-echo ">>> Order of <Move> operations ..."
+TEST_PURPOSE="Order of <Move> operations ..."
-# Tests the type attribute in <MergeFile>
+test_code() {
+ # Tests the type attribute in <MergeFile>
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -41,7 +42,8 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-# Move operations in sub-menus should be performed first
+ # Move operations in sub-menus should be performed first
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications freecell.desktop glines.desktop gideon.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications freecell.desktop glines.desktop gideon.desktop
+}
diff --git a/menu/tests/tests/x/result b/menu/tests/tests/Move-submenu/result
index f1c44ef..f1c44ef 100644
--- a/menu/tests/tests/x/result
+++ b/menu/tests/tests/Move-submenu/result
diff --git a/menu/tests/tests/x/test b/menu/tests/tests/Move-submenu/test
index bc5ff47..2751983 100644
--- a/menu/tests/tests/x/test
+++ b/menu/tests/tests/Move-submenu/test
@@ -1,8 +1,9 @@
-echo ">>> Move into a new Submenu"
+TEST_PURPOSE="Move into a new Submenu"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -25,7 +26,7 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
+ # Install .desktop files
-# Install .desktop files
-
-installData ${XDG_DATA_DIR}/applications gideon-legacy.desktop
+ installData ${XDG_DATA_DIR}/applications gideon-legacy.desktop
+}
diff --git a/menu/tests/tests/4/result b/menu/tests/tests/Move/result
index d9a802d..d9a802d 100644
--- a/menu/tests/tests/4/result
+++ b/menu/tests/tests/Move/result
diff --git a/menu/tests/tests/4/test b/menu/tests/tests/Move/test
index 9468b0a..9f2d162 100644
--- a/menu/tests/tests/4/test
+++ b/menu/tests/tests/Move/test
@@ -1,8 +1,9 @@
-echo ">>> a simple <Move> operation"
+TEST_PURPOSE="simple <Move> operation"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -28,6 +29,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/m/result b/menu/tests/tests/NoDisplay/result
index 7ed7169..7ed7169 100644
--- a/menu/tests/tests/m/result
+++ b/menu/tests/tests/NoDisplay/result
diff --git a/menu/tests/tests/m/test b/menu/tests/tests/NoDisplay/test
index 352885e..48e94ea 100644
--- a/menu/tests/tests/m/test
+++ b/menu/tests/tests/NoDisplay/test
@@ -1,8 +1,9 @@
-echo ">>> NoDisplay desktop entry values"
+TEST_PURPOSE="NoDisplay desktop entry values"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -30,6 +31,7 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop freecell.desktop hidden.desktop
-installData ${XDG_DATA_DIR}/desktop-directories hidden.directory
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop freecell.desktop hidden.desktop
+ installData ${XDG_DATA_DIR}/desktop-directories hidden.directory
+}
diff --git a/menu/tests/tests/n/result b/menu/tests/tests/NoDisplay2/result
index 7ed7169..7ed7169 100644
--- a/menu/tests/tests/n/result
+++ b/menu/tests/tests/NoDisplay2/result
diff --git a/menu/tests/tests/n/test b/menu/tests/tests/NoDisplay2/test
index 7088e16..62ba5a7 100644
--- a/menu/tests/tests/n/test
+++ b/menu/tests/tests/NoDisplay2/test
@@ -1,8 +1,9 @@
-echo ">>> Allocation of desktop entry values from deleted menus"
+TEST_PURPOSE="Allocation of desktop entry values from deleted menus"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -31,6 +32,7 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop freecell.desktop hidden.desktop
-installData ${XDG_DATA_DIR}/desktop-directories apps.directory
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop freecell.desktop hidden.desktop
+ installData ${XDG_DATA_DIR}/desktop-directories apps.directory
+}
diff --git a/menu/tests/tests/v/result b/menu/tests/tests/NotOnlyUnallocated-default/result
index 0c398b7..0c398b7 100644
--- a/menu/tests/tests/v/result
+++ b/menu/tests/tests/NotOnlyUnallocated-default/result
diff --git a/menu/tests/tests/v/test b/menu/tests/tests/NotOnlyUnallocated-default/test
index 5fb6103..2f4956e 100644
--- a/menu/tests/tests/v/test
+++ b/menu/tests/tests/NotOnlyUnallocated-default/test
@@ -1,10 +1,11 @@
-echo ">>> Another <OnlyUnallocated> test"
+TEST_PURPOSE="Another <OnlyUnallocated> test"
-# Tests <OnlyUnallocated>
+test_code() {
+ # Tests <OnlyUnallocated>
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -27,5 +28,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop
+}
diff --git a/menu/tests/tests/2/result b/menu/tests/tests/OnlyUnallocated/result
index 8be4bc7..8be4bc7 100644
--- a/menu/tests/tests/2/result
+++ b/menu/tests/tests/OnlyUnallocated/result
diff --git a/menu/tests/tests/2/test b/menu/tests/tests/OnlyUnallocated/test
index 7e28af5..efda0ff 100644
--- a/menu/tests/tests/2/test
+++ b/menu/tests/tests/OnlyUnallocated/test
@@ -1,8 +1,9 @@
-echo ">>> the <OnlyAllocated> tag"
+TEST_PURPOSE="<OnlyAllocated> tag"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -38,5 +39,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
EOF
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/8/result b/menu/tests/tests/Or/result
index fc75a82..fc75a82 100644
--- a/menu/tests/tests/8/result
+++ b/menu/tests/tests/Or/result
diff --git a/menu/tests/tests/8/test b/menu/tests/tests/Or/test
index 4554d05..cd10cfd 100644
--- a/menu/tests/tests/8/test
+++ b/menu/tests/tests/Or/test
@@ -1,8 +1,9 @@
-echo ">>> the <Or> Keyword"
+TEST_PURPOSE="<Or> Keyword"
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -23,6 +24,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
+}
diff --git a/menu/tests/tests/a/test b/menu/tests/tests/a/test
deleted file mode 100644
index 232704b..0000000
--- a/menu/tests/tests/a/test
+++ /dev/null
@@ -1,25 +0,0 @@
-echo ">>> a test for DesktopFileIDs in submenus"
-
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
-
-<Menu>
- <Name>KDE</Name>
- <!-- Search the default locations -->
- <DefaultAppDirs/>
-
- <Menu>
- <Name>Applications</Name>
- <Include>
- <Category>Game</Category>
- </Include>
- </Menu>
-</Menu>
-EOF
-
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications/company/games gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop
diff --git a/menu/tests/tests/o/result b/menu/tests/tests/boolean-logic/result
index ea47f01..ea47f01 100644
--- a/menu/tests/tests/o/result
+++ b/menu/tests/tests/boolean-logic/result
diff --git a/menu/tests/tests/boolean-logic/test b/menu/tests/tests/boolean-logic/test
new file mode 100644
index 0000000..dc045c4
--- /dev/null
+++ b/menu/tests/tests/boolean-logic/test
@@ -0,0 +1,36 @@
+TEST_PURPOSE="<And><Category>foo</Category><Not><Category>foo</Category></Not></And> shouldn't match anything"
+
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+
+ <DefaultAppDirs/>
+ <DefaultDirectoryDirs/>
+
+ <Menu>
+ <Name>Applications</Name>
+ <Directory>apps.directory</Directory>
+ <Include>
+ <Or>
+ <Category>TextEditor</Category>
+ <And>
+ <Category>Game</Category>
+ <Not><Category>Game</Category></Not>
+ </And>
+ </Or>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop
+ installData ${XDG_DATA_DIR}/applications/test freecell.desktop
+ installData ${XDG_DATA_DIR}/desktop-directories apps.directory
+}
diff --git a/menu/tests/tests/s/result b/menu/tests/tests/desktop-name-collision/result
index e1e9221..e1e9221 100644
--- a/menu/tests/tests/s/result
+++ b/menu/tests/tests/desktop-name-collision/result
diff --git a/menu/tests/tests/desktop-name-collision/test b/menu/tests/tests/desktop-name-collision/test
new file mode 100644
index 0000000..46b5ded
--- /dev/null
+++ b/menu/tests/tests/desktop-name-collision/test
@@ -0,0 +1,53 @@
+TEST_PURPOSE=".desktop files with same name ..."
+
+test_code() {
+ # Tests the type attribute in <MergeFile>
+
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
+ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+ <Name>KDE</Name>
+ <DefaultAppDirs/>
+ <Menu>
+ <Name>Games</Name>
+ <Include>
+ <Category>Game</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Development</Name>
+ <Include>
+ <Category>Development</Category>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications freecell.desktop glines.desktop mahjongg.desktop
+
+ # freecell.desktop is installed twice, only the version under ${XDG_DATA_HOME}/applications
+ # should show up in the menu
+ # freecell.desktop in ${XDG_DATA_DIR}/applications should be ignored.
+ installData ${XDG_DATA_HOME}/applications freecell.desktop
+
+ # ${XDG_DATA_HOME}/applications/glines.desktop has NoDisplay=true
+ # glines.desktop should not be shown
+ # glines.desktop in ${XDG_DATA_DIR}/applications should be ignored.
+ installDataAs ${XDG_DATA_HOME}/applications glines-2.desktop glines.desktop
+
+ # ${XDG_DATA_HOME}/applications/mahjongg.desktop has Categories=Development
+ # mahjongg.desktop should be shown under the Development menu
+ # mahjongg.desktop in ${XDG_DATA_DIR}/applications should be ignored.
+ installDataAs ${XDG_DATA_HOME}/applications mahjongg-2.desktop mahjongg.desktop
+
+ # kde/gideon.desktop and kde-gideon.desktop are equivalent
+ # only the version under ${XDG_DATA_HOME}/applications should show up in the menu
+ # gideon.desktop in ${XDG_DATA_DIR}/applications/kde should be ignored.
+ installDataAs ${XDG_DATA_DIR}/applications/kde gideon.desktop
+ installDataAs ${XDG_DATA_HOME}/applications gideon.desktop kde-gideon.desktop
+}
diff --git a/menu/tests/tests/g/test b/menu/tests/tests/g/test
deleted file mode 100644
index eb75f2e..0000000
--- a/menu/tests/tests/g/test
+++ /dev/null
@@ -1,25 +0,0 @@
-echo ">>> a relative <AppDir> tag ..."
-
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
-
-<Menu>
- <Name>KDE</Name>
- <!-- Search the default locations -->
- <AppDir>apps</AppDir>
-
- <Menu>
- <Name>Applications</Name>
- <Include>
- <Category>TextEditor</Category>
- </Include>
- </Menu>
-</Menu>
-EOF
-
-
-# Install .desktop files
-installData ${XDG_CONFIG_DIR}/menus/apps kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
diff --git a/menu/tests/tests/h/test b/menu/tests/tests/h/test
deleted file mode 100644
index c8fa0cc..0000000
--- a/menu/tests/tests/h/test
+++ /dev/null
@@ -1,28 +0,0 @@
-echo ">>> a relative <DirectoryDir> tag ..."
-
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
-
-<Menu>
- <Name>KDE</Name>
- <!-- Search the default locations -->
- <DefaultAppDirs/>
- <DirectoryDir>desktop-directories</DirectoryDir>
-
- <Menu>
- <Name>Applications</Name>
- <Directory>apps.directory</Directory>
- <Include>
- <Category>TextEditor</Category>
- </Include>
- </Menu>
-</Menu>
-EOF
-
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
-installData ${XDG_CONFIG_DIR}/menus/desktop-directories apps.directory
diff --git a/menu/tests/tests/j/test b/menu/tests/tests/j/test
deleted file mode 100644
index 077d952..0000000
--- a/menu/tests/tests/j/test
+++ /dev/null
@@ -1,42 +0,0 @@
-echo ">>> the <MergeDir> tag ..."
-
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
-
-<Menu>
- <Name>KDE</Name>
- <DefaultAppDirs/>
- <MergeDir>applications-merged</MergeDir>
-
- <Menu>
- <Name>Applications</Name>
- <Include>
- <Category>TextEditor</Category>
- </Include>
- </Menu>
-</Menu>
-EOF
-
-
-mkdir ${XDG_CONFIG_DIR}/menus/applications-merged/
-./expand > ${XDG_CONFIG_DIR}/menus/applications-merged/test.menu <<EOF
- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
-
-<Menu>
- <Name>KDE</Name>
-
- <Menu>
- <Name>Development</Name>
- <Include>
- <Category>Development</Category>
- </Include>
- </Menu>
-</Menu>
-EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
diff --git a/menu/tests/tests/b/result b/menu/tests/tests/menu-multiple-matching/result
index 986c873..986c873 100644
--- a/menu/tests/tests/b/result
+++ b/menu/tests/tests/menu-multiple-matching/result
diff --git a/menu/tests/tests/b/test b/menu/tests/tests/menu-multiple-matching/test
index 74d9870..d8914ab 100644
--- a/menu/tests/tests/b/test
+++ b/menu/tests/tests/menu-multiple-matching/test
@@ -1,8 +1,9 @@
-echo ">>> a complicated rule ..."
+TEST_PURPOSE="complicated rule ..."
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -30,6 +31,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications gataxx.desktop mahjongg.desktop freecell.desktop glines.desktop kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+}
diff --git a/menu/tests/tests/o/test b/menu/tests/tests/o/test
deleted file mode 100644
index b87f321..0000000
--- a/menu/tests/tests/o/test
+++ /dev/null
@@ -1,34 +0,0 @@
-echo ">>> <And><Category>foo</Category><Not><Category>foo</Category></Not></And> shouldn't match anything"
-
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
-
-<Menu>
- <Name>KDE</Name>
-
- <DefaultAppDirs/>
- <DefaultDirectoryDirs/>
-
- <Menu>
- <Name>Applications</Name>
- <Directory>apps.directory</Directory>
- <Include>
- <Or>
- <Category>TextEditor</Category>
- <And>
- <Category>Game</Category>
- <Not><Category>Game</Category></Not>
- </And>
- </Or>
- </Include>
- </Menu>
-</Menu>
-EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop
-installData ${XDG_DATA_DIR}/applications/test freecell.desktop
-installData ${XDG_DATA_DIR}/desktop-directories apps.directory
diff --git a/menu/tests/tests/official-categories/categories.list b/menu/tests/tests/official-categories/categories.list
new file mode 100644
index 0000000..6e2198d
--- /dev/null
+++ b/menu/tests/tests/official-categories/categories.list
@@ -0,0 +1,10 @@
+AudioVideo
+Development
+Education
+Game
+Graphics
+Network
+Office
+Settings
+System
+Utility
diff --git a/menu/tests/tests/official-categories/test b/menu/tests/tests/official-categories/test
new file mode 100644
index 0000000..09621cd
--- /dev/null
+++ b/menu/tests/tests/official-categories/test
@@ -0,0 +1,73 @@
+TEST_PURPOSE="verify all required categories are supported"
+
+base_loc="tests/official-categories"
+
+test_code()
+{
+ local category
+ for category in $(< "${base_loc}/categories.list"); do
+ CATEGORY="${category}" ./expand "${base_loc}/unique-entry.desktop" > "data/${category}.desktop"
+ installData "${XDG_DATA_DIR}/applications" "${category}.desktop"
+ rm "data/${category}.desktop"
+ done
+}
+
+query()
+{
+ echo "$@"
+ ret=''
+ while [ -z "$ret" ]; do
+ echo -n "y/n? :"
+ read ret
+ if ! [ "$ret" == "y" -o "$ret" == "n" ]; then
+ echo "invalid response; must be 'y' or 'n'"
+ ret=''
+ fi
+ done
+ [ "$ret" == "y" ] && return 0
+ return 1
+}
+
+interpret_results()
+{
+ # inefficient, but works.
+ local missed=''
+ local correct=''
+ for category in $(< "${base_loc}/categories.list"); do
+ if grep "/${category}\.desktop" "${MENUTESTDIR}/run-result" > /dev/null; then
+ correct="${correct} ${category}"
+ else
+ missed="${missed} ${category}"
+ fi
+ done
+ if [ -z "${missed}" ]; then
+ echo ">>> OK"
+ return 0
+ fi
+ if [ "$(echo $missed)" != "Settings" ]; then
+ # failures.
+ cat "${MENUTESTDIR}/run-result"
+ echo "missed categories $missed"
+ echo "matched ${correct}"
+ echo ">>> Failed (missed $(echo $missed | wc -w) out of $(wc -l "${base_loc}/categories.list")"
+ return 1
+ fi
+ echo ">>> Settings failed; checking interactively"
+ local ret
+ if [ "$(id -u)" != "0" ]; then
+ echo ">>> Cannot go interactive due to test being ran as non-root; re-run as root"
+ return 1;
+ elif ! which xdg-desktop-menu &> /dev/null; then
+ echo ">>> xdg-desktop-menu is not available; cannot do interactive test"
+ return 1;
+ fi
+ xdg-desktop-menu install --mode system --novendor "${XDG_DATA_DIR}/applications/Settings.desktop"
+ (
+ query "Please check for a 'menu-spec-testing' in any gnome/kde system settings panel"
+ )
+ ret=$?
+ xdg-desktop-menu uninstall --mode system "${XDG_DATA_DIR}/applications/Settings.desktop"
+ return $(($ret))
+}
+
+MODE=system_data
diff --git a/menu/tests/tests/official-categories/unique-entry.desktop b/menu/tests/tests/official-categories/unique-entry.desktop
new file mode 100644
index 0000000..6ee3b88
--- /dev/null
+++ b/menu/tests/tests/official-categories/unique-entry.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=menu-spec-testing
+Exec=true
+Icon=quanta
+Type=Application
+MimeType=text/html
+Comment=menu-spec testing
+Categories=${CATEGORY};
diff --git a/menu/tests/tests/s/test b/menu/tests/tests/s/test
deleted file mode 100644
index a68b646..0000000
--- a/menu/tests/tests/s/test
+++ /dev/null
@@ -1,51 +0,0 @@
-echo ">>> .desktop files with same name ..."
-
-# Tests the type attribute in <MergeFile>
-
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
-
-<Menu>
- <Name>KDE</Name>
- <DefaultAppDirs/>
- <Menu>
- <Name>Games</Name>
- <Include>
- <Category>Game</Category>
- </Include>
- </Menu>
- <Menu>
- <Name>Development</Name>
- <Include>
- <Category>Development</Category>
- </Include>
- </Menu>
-</Menu>
-EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications freecell.desktop glines.desktop mahjongg.desktop
-
-# freecell.desktop is installed twice, only the version under ${XDG_DATA_HOME}/applications
-# should show up in the menu
-# freecell.desktop in ${XDG_DATA_DIR}/applications should be ignored.
-installData ${XDG_DATA_HOME}/applications freecell.desktop
-
-# ${XDG_DATA_HOME}/applications/glines.desktop has NoDisplay=true
-# glines.desktop should not be shown
-# glines.desktop in ${XDG_DATA_DIR}/applications should be ignored.
-installDataAs ${XDG_DATA_HOME}/applications glines-2.desktop glines.desktop
-
-# ${XDG_DATA_HOME}/applications/mahjongg.desktop has Categories=Development
-# mahjongg.desktop should be shown under the Development menu
-# mahjongg.desktop in ${XDG_DATA_DIR}/applications should be ignored.
-installDataAs ${XDG_DATA_HOME}/applications mahjongg-2.desktop mahjongg.desktop
-
-# kde/gideon.desktop and kde-gideon.desktop are equivalent
-# only the version under ${XDG_DATA_HOME}/applications should show up in the menu
-# gideon.desktop in ${XDG_DATA_DIR}/applications/kde should be ignored.
-installDataAs ${XDG_DATA_DIR}/applications/kde gideon.desktop
-installDataAs ${XDG_DATA_HOME}/applications gideon.desktop kde-gideon.desktop
diff --git a/menu/tests/tests/d/result b/menu/tests/tests/submenu-collision/result
index 6aa47d7..6aa47d7 100644
--- a/menu/tests/tests/d/result
+++ b/menu/tests/tests/submenu-collision/result
diff --git a/menu/tests/tests/d/test b/menu/tests/tests/submenu-collision/test
index 33b6dc6..7d29896 100644
--- a/menu/tests/tests/d/test
+++ b/menu/tests/tests/submenu-collision/test
@@ -1,8 +1,9 @@
-echo ">>> two submenus with the same name ..."
+TEST_PURPOSE="two submenus with the same name ..."
-# Generate ${DIRTY_HACK}applications.menu
-mkdir -p ${XDG_CONFIG_DIR}/menus
-./expand > ${XDG_CONFIG_DIR}/menus/${DIRTY_HACK}applications.menu <<EOF
+test_code() {
+ # Generate applications.menu
+ mkdir -p ${XDG_CONFIG_DIR}/menus
+ ./expand > ${XDG_CONFIG_DIR}/menus/applications.menu <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
@@ -26,6 +27,6 @@ mkdir -p ${XDG_CONFIG_DIR}/menus
</Menu>
EOF
-
-# Install .desktop files
-installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+ # Install .desktop files
+ installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop quanta.desktop kate.desktop kbabel.desktop
+}