summaryrefslogtreecommitdiffstats
path: root/menu/tests/tests
diff options
context:
space:
mode:
authorlanius <lanius>2003-09-03 21:24:48 +0000
committerlanius <lanius>2003-09-03 21:24:48 +0000
commitbdb6e49586babb43eae371ebc7b895e3b9887dd6 (patch)
tree80fdad59da5d7bb412ee33b9fda2dfb3f46f7889 /menu/tests/tests
parentcd3f8b4a7987d23c9af7aa6a6b3e37b9ac2b2253 (diff)
downloadxdg-specs-bdb6e49586babb43eae371ebc7b895e3b9887dd6.tar.xz
more teeeeeests
Diffstat (limited to 'menu/tests/tests')
-rw-r--r--menu/tests/tests/1/result3
-rw-r--r--menu/tests/tests/1/test24
-rw-r--r--menu/tests/tests/2/result4
-rw-r--r--menu/tests/tests/2/test34
-rw-r--r--menu/tests/tests/3/result2
-rw-r--r--menu/tests/tests/3/test34
-rw-r--r--menu/tests/tests/4/result2
-rw-r--r--menu/tests/tests/4/test33
-rw-r--r--menu/tests/tests/5/result4
-rw-r--r--menu/tests/tests/5/test25
-rw-r--r--menu/tests/tests/6/result1
-rw-r--r--menu/tests/tests/6/test25
-rw-r--r--menu/tests/tests/7/result1
-rw-r--r--menu/tests/tests/7/test28
-rw-r--r--menu/tests/tests/8/result4
-rw-r--r--menu/tests/tests/8/test28
-rw-r--r--menu/tests/tests/9/result3
-rw-r--r--menu/tests/tests/9/test31
-rw-r--r--menu/tests/tests/a/result4
-rw-r--r--menu/tests/tests/a/test25
-rw-r--r--menu/tests/tests/b/result5
-rw-r--r--menu/tests/tests/b/test35
-rw-r--r--menu/tests/tests/c/result3
-rw-r--r--menu/tests/tests/c/test28
-rw-r--r--menu/tests/tests/d/result5
-rw-r--r--menu/tests/tests/d/test31
-rw-r--r--menu/tests/tests/e/result9
-rw-r--r--menu/tests/tests/e/test45
-rw-r--r--menu/tests/tests/f/result6
-rw-r--r--menu/tests/tests/f/test39
-rw-r--r--menu/tests/tests/g/result3
-rw-r--r--menu/tests/tests/g/test25
-rw-r--r--menu/tests/tests/h/result3
-rw-r--r--menu/tests/tests/h/test28
-rw-r--r--menu/tests/tests/i/result5
-rw-r--r--menu/tests/tests/i/test42
-rw-r--r--menu/tests/tests/j/result5
-rw-r--r--menu/tests/tests/j/test42
-rw-r--r--menu/tests/tests/k/result5
-rw-r--r--menu/tests/tests/k/test42
40 files changed, 721 insertions, 0 deletions
diff --git a/menu/tests/tests/1/result b/menu/tests/tests/1/result
new file mode 100644
index 0000000..73b00c9
--- /dev/null
+++ b/menu/tests/tests/1/result
@@ -0,0 +1,3 @@
+Editors/ KEdit.desktop ${XDG_DATA_DIR}/applications/KEdit.desktop
+Editors/ kate.desktop ${XDG_DATA_DIR}/applications/kate.desktop
+Editors/ kwrite.desktop ${XDG_DATA_DIR}/applications/kwrite.desktop
diff --git a/menu/tests/tests/1/test b/menu/tests/tests/1/test
new file mode 100644
index 0000000..160c543
--- /dev/null
+++ b/menu/tests/tests/1/test
@@ -0,0 +1,24 @@
+echo ">>> the <Category> tag"
+
+# 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>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+# Install .desktop files
+installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop
diff --git a/menu/tests/tests/2/result b/menu/tests/tests/2/result
new file mode 100644
index 0000000..421ae42
--- /dev/null
+++ b/menu/tests/tests/2/result
@@ -0,0 +1,4 @@
+BoardGames/ gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/gataxx.desktop
+BoardGames/ mahjongg.desktop /tmp/menutestdir/xdg_data_dir/applications/mahjongg.desktop
+Games/ freecell.desktop /tmp/menutestdir/xdg_data_dir/applications/freecell.desktop
+Games/ glines.desktop /tmp/menutestdir/xdg_data_dir/applications/glines.desktop
diff --git a/menu/tests/tests/2/test b/menu/tests/tests/2/test
new file mode 100644
index 0000000..93f7bf7
--- /dev/null
+++ b/menu/tests/tests/2/test
@@ -0,0 +1,34 @@
+echo ">>> the <OnlyAllocated> tag"
+
+# 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>BoardGames</Name>
+ <Include>
+ <Category>BoardGame</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Games</Name>
+ <Include>
+ <Category>Game</Category>
+ </Include>
+ <OnlyUnallocated/>
+ <NotOnlyUnallocated/>
+ <OnlyUnallocated/>
+ </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/3/result b/menu/tests/tests/3/result
new file mode 100644
index 0000000..ccb0379
--- /dev/null
+++ b/menu/tests/tests/3/result
@@ -0,0 +1,2 @@
+BoardGames/ gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/gataxx.desktop
+BoardGames/ mahjongg.desktop /tmp/menutestdir/xdg_data_dir/applications/mahjongg.desktop
diff --git a/menu/tests/tests/3/test b/menu/tests/tests/3/test
new file mode 100644
index 0000000..48952f7
--- /dev/null
+++ b/menu/tests/tests/3/test
@@ -0,0 +1,34 @@
+echo ">>> the <Deleted> tag"
+
+# 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>BoardGames</Name>
+ <Include>
+ <Category>BoardGame</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Games</Name>
+ <Include>
+ <Category>Game</Category>
+ </Include>
+ <Deleted/>
+ <NotDeleted/>
+ <Deleted/>
+ </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/4/result b/menu/tests/tests/4/result
new file mode 100644
index 0000000..fb635c2
--- /dev/null
+++ b/menu/tests/tests/4/result
@@ -0,0 +1,2 @@
+Games/ gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/gataxx.desktop
+Games/ mahjongg.desktop /tmp/menutestdir/xdg_data_dir/applications/mahjongg.desktop
diff --git a/menu/tests/tests/4/test b/menu/tests/tests/4/test
new file mode 100644
index 0000000..e7f48aa
--- /dev/null
+++ b/menu/tests/tests/4/test
@@ -0,0 +1,33 @@
+echo ">>> a simple <Move> operation"
+
+# 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/>
+ <Move>
+ <Old>Foo</Old>
+ <New>Bar</New>
+ <Old>BoardGames</Old>
+ <New>Apps</New>
+ <Old>BoardGames</Old>
+ <New>Games</New>
+ </Move>
+
+ <Menu>
+ <Name>BoardGames</Name>
+ <Include>
+ <Category>BoardGame</Category>
+ </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/5/result
new file mode 100644
index 0000000..df3b711
--- /dev/null
+++ b/menu/tests/tests/5/result
@@ -0,0 +1,4 @@
+Applications/ freecell.desktop /tmp/menutestdir/xdg_data_dir/applications/freecell.desktop
+Applications/ gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/gataxx.desktop
+Applications/ glines.desktop /tmp/menutestdir/xdg_data_dir/applications/glines.desktop
+Applications/ mahjongg.desktop /tmp/menutestdir/xdg_data_dir/applications/mahjongg.desktop
diff --git a/menu/tests/tests/5/test b/menu/tests/tests/5/test
new file mode 100644
index 0000000..25f02de
--- /dev/null
+++ b/menu/tests/tests/5/test
@@ -0,0 +1,25 @@
+echo ">>> the <All> Keyword"
+
+# 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/6/result
new file mode 100644
index 0000000..7fefbe1
--- /dev/null
+++ b/menu/tests/tests/6/result
@@ -0,0 +1 @@
+Applications/ freecell.desktop /tmp/menutestdir/xdg_data_dir/applications/freecell.desktop
diff --git a/menu/tests/tests/6/test b/menu/tests/tests/6/test
new file mode 100644
index 0000000..0b29440
--- /dev/null
+++ b/menu/tests/tests/6/test
@@ -0,0 +1,25 @@
+echo ">>> the <Filename> tag"
+
+# 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>
+ <Filename>freecell.desktop</Filename>
+ </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/7/result b/menu/tests/tests/7/result
new file mode 100644
index 0000000..7fefbe1
--- /dev/null
+++ b/menu/tests/tests/7/result
@@ -0,0 +1 @@
+Applications/ freecell.desktop /tmp/menutestdir/xdg_data_dir/applications/freecell.desktop
diff --git a/menu/tests/tests/7/test b/menu/tests/tests/7/test
new file mode 100644
index 0000000..3c74628
--- /dev/null
+++ b/menu/tests/tests/7/test
@@ -0,0 +1,28 @@
+echo ">>> the <And> Keyword"
+
+# 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>
+ <And>
+ <Filename>freecell.desktop</Filename>
+ <Category>Game</Category>
+ </And>
+ </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/8/result b/menu/tests/tests/8/result
new file mode 100644
index 0000000..df3b711
--- /dev/null
+++ b/menu/tests/tests/8/result
@@ -0,0 +1,4 @@
+Applications/ freecell.desktop /tmp/menutestdir/xdg_data_dir/applications/freecell.desktop
+Applications/ gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/gataxx.desktop
+Applications/ glines.desktop /tmp/menutestdir/xdg_data_dir/applications/glines.desktop
+Applications/ mahjongg.desktop /tmp/menutestdir/xdg_data_dir/applications/mahjongg.desktop
diff --git a/menu/tests/tests/8/test b/menu/tests/tests/8/test
new file mode 100644
index 0000000..cf0731a
--- /dev/null
+++ b/menu/tests/tests/8/test
@@ -0,0 +1,28 @@
+echo ">>> the <Or> Keyword"
+
+# 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>
+ <Or>
+ <Filename>freecell.desktop</Filename>
+ <Category>Game</Category>
+ </Or>
+ </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/9/result b/menu/tests/tests/9/result
new file mode 100644
index 0000000..ce28f91
--- /dev/null
+++ b/menu/tests/tests/9/result
@@ -0,0 +1,3 @@
+Applications/ freecell.desktop /tmp/menutestdir/xdg_data_dir/applications/freecell.desktop
+Applications/ gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/gataxx.desktop
+Applications/ mahjongg.desktop /tmp/menutestdir/xdg_data_dir/applications/mahjongg.desktop
diff --git a/menu/tests/tests/9/test b/menu/tests/tests/9/test
new file mode 100644
index 0000000..47ba7b3
--- /dev/null
+++ b/menu/tests/tests/9/test
@@ -0,0 +1,31 @@
+echo ">>> the <Exclude> Keyword"
+
+# 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>
+ <Or>
+ <Filename>freecell.desktop</Filename>
+ <Category>Game</Category>
+ </Or>
+ </Include>
+ <Exclude>
+ <Filename>glines.desktop</Filename>
+ </Exclude>
+ </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/a/result b/menu/tests/tests/a/result
new file mode 100644
index 0000000..d87dffa
--- /dev/null
+++ b/menu/tests/tests/a/result
@@ -0,0 +1,4 @@
+Applications/ company-games-freecell.desktop /tmp/menutestdir/xdg_data_dir/applications/company/games/freecell.desktop
+Applications/ company-games-gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/company/games/gataxx.desktop
+Applications/ company-games-glines.desktop /tmp/menutestdir/xdg_data_dir/applications/company/games/glines.desktop
+Applications/ company-games-mahjongg.desktop /tmp/menutestdir/xdg_data_dir/applications/company/games/mahjongg.desktop
diff --git a/menu/tests/tests/a/test b/menu/tests/tests/a/test
new file mode 100644
index 0000000..06ab812
--- /dev/null
+++ b/menu/tests/tests/a/test
@@ -0,0 +1,25 @@
+echo ">>> a test for DesktopFileIDs in submenus"
+
+# 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/b/result b/menu/tests/tests/b/result
new file mode 100644
index 0000000..c0d98a9
--- /dev/null
+++ b/menu/tests/tests/b/result
@@ -0,0 +1,5 @@
+Applications/ KEdit.desktop /tmp/menutestdir/xdg_data_dir/applications/KEdit.desktop
+Applications/ gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/gataxx.desktop
+Applications/ kate.desktop /tmp/menutestdir/xdg_data_dir/applications/kate.desktop
+Applications/ kwrite.desktop /tmp/menutestdir/xdg_data_dir/applications/kwrite.desktop
+Applications/ quanta.desktop /tmp/menutestdir/xdg_data_dir/applications/quanta.desktop
diff --git a/menu/tests/tests/b/test b/menu/tests/tests/b/test
new file mode 100644
index 0000000..0c3bee8
--- /dev/null
+++ b/menu/tests/tests/b/test
@@ -0,0 +1,35 @@
+echo ">>> a complicated rule ..."
+
+# 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>
+ <And>
+ <Category>Game</Category>
+ <Category>BoardGame</Category>
+ </And>
+ <Or>
+ <Category>TextEditor</Category>
+ <Filename>quanta.desktop</Filename>
+ </Or>
+ </Include>
+ <Exclude>
+ <Filename>mahjongg.desktop</Filename>
+ </Exclude>
+ </Menu>
+</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
diff --git a/menu/tests/tests/c/result b/menu/tests/tests/c/result
new file mode 100644
index 0000000..9bd54ef
--- /dev/null
+++ b/menu/tests/tests/c/result
@@ -0,0 +1,3 @@
+Apps/ KEdit.desktop /tmp/menutestdir/xdg_data_dir/applications/KEdit.desktop
+Apps/ kate.desktop /tmp/menutestdir/xdg_data_dir/applications/kate.desktop
+Apps/ kwrite.desktop /tmp/menutestdir/xdg_data_dir/applications/kwrite.desktop
diff --git a/menu/tests/tests/c/test b/menu/tests/tests/c/test
new file mode 100644
index 0000000..592b438
--- /dev/null
+++ b/menu/tests/tests/c/test
@@ -0,0 +1,28 @@
+echo ">>> the <Directory> tag ..."
+
+# 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/>
+ <DefaultDirectoryDirs/>
+
+ <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_DATA_DIR}/desktop-directories apps.directory
diff --git a/menu/tests/tests/d/result b/menu/tests/tests/d/result
new file mode 100644
index 0000000..1afabea
--- /dev/null
+++ b/menu/tests/tests/d/result
@@ -0,0 +1,5 @@
+Applications/ KEdit.desktop /tmp/menutestdir/xdg_data_dir/applications/KEdit.desktop
+Applications/ kate.desktop /tmp/menutestdir/xdg_data_dir/applications/kate.desktop
+Applications/ kbabel.desktop /tmp/menutestdir/xdg_data_dir/applications/kbabel.desktop
+Applications/ kwrite.desktop /tmp/menutestdir/xdg_data_dir/applications/kwrite.desktop
+Applications/ quanta.desktop /tmp/menutestdir/xdg_data_dir/applications/quanta.desktop
diff --git a/menu/tests/tests/d/test b/menu/tests/tests/d/test
new file mode 100644
index 0000000..af2cae8
--- /dev/null
+++ b/menu/tests/tests/d/test
@@ -0,0 +1,31 @@
+echo ">>> two submenus with the same name ..."
+
+# 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>TextEditor</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Applications</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/e/result b/menu/tests/tests/e/result
new file mode 100644
index 0000000..be80965
--- /dev/null
+++ b/menu/tests/tests/e/result
@@ -0,0 +1,9 @@
+Development/ gideon.desktop ${LEGACY_DIR}/Development/gideon.desktop
+Development/ kbabel.desktop ${LEGACY_DIR}/Development/kbabel.desktop
+Development/ quanta.desktop ${LEGACY_DIR}/Development/quanta.desktop
+Editors/ KEdit.desktop ${XDG_DATA_DIR}/applications/KEdit.desktop
+Editors/ kate.desktop ${XDG_DATA_DIR}/applications/kate.desktop
+Editors/ kwrite.desktop ${XDG_DATA_DIR}/applications/kwrite.desktop
+/ Help.desktop ${LEGACY_DIR}/Help.desktop
+/ Home.desktop ${LEGACY_DIR}/Home.desktop
+/ Kfind.desktop ${LEGACY_DIR}/Kfind.desktop
diff --git a/menu/tests/tests/e/test b/menu/tests/tests/e/test
new file mode 100644
index 0000000..90f83a8
--- /dev/null
+++ b/menu/tests/tests/e/test
@@ -0,0 +1,45 @@
+echo ">>> Simple <LegacyDir> test"
+
+LEGACY_DIR=${MENUTESTDIR}/legacy_applnk
+export LEGACY_DIR
+
+# 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 -->
+ <LegacyDir>${LEGACY_DIR}</LegacyDir>
+ <DefaultAppDirs/>
+ <DefaultDirectoryDirs/>
+
+ <Menu>
+ <Name>Editors</Name>
+ <Directory>kde-editors.directory</Directory>
+ <Include>
+ <Category>TextEditor</Category>
+ </Include>
+ </Menu>
+ <Menu>
+ <Name>Development</Name>
+ <Directory>kde-development.directory</Directory>
+ <Include>
+ <Category>Development</Category>
+ </Include>
+ </Menu>
+</Menu>
+EOF
+
+
+# Install .desktop files
+
+installData ${XDG_DATA_DIR}/applications kwrite.desktop KEdit.desktop kate.desktop
+
+installData ${LEGACY_DIR}/Development gideon.desktop kbabel.desktop quanta.desktop
+
+installData ${LEGACY_DIR} Kfind.desktop Home.desktop Help.desktop
+
+
diff --git a/menu/tests/tests/f/result b/menu/tests/tests/f/result
new file mode 100644
index 0000000..886db8e
--- /dev/null
+++ b/menu/tests/tests/f/result
@@ -0,0 +1,6 @@
+BoardGame/ gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/gataxx.desktop
+BoardGame/ mahjongg.desktop /tmp/menutestdir/xdg_data_dir/applications/mahjongg.desktop
+Games/ freecell.desktop /tmp/menutestdir/xdg_data_dir/applications/freecell.desktop
+Games/ gataxx.desktop /tmp/menutestdir/xdg_data_dir/applications/gataxx.desktop
+Games/ glines.desktop /tmp/menutestdir/xdg_data_dir/applications/glines.desktop
+Games/ mahjongg.desktop /tmp/menutestdir/xdg_data_dir/applications/mahjongg.desktop
diff --git a/menu/tests/tests/f/test b/menu/tests/tests/f/test
new file mode 100644
index 0000000..d074a2c
--- /dev/null
+++ b/menu/tests/tests/f/test
@@ -0,0 +1,39 @@
+echo ">>> a complicated <Move> operation"
+
+# 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/>
+ <Move>
+ <Old>Games1</Old>
+ <New>Games</New>
+ </Move>
+
+ <Menu>
+ <Name>Games1</Name>
+ <Menu>
+ <Name>BoardGame</Name>
+ <Include>
+ <Category>BoardGame</Category>
+ </Include>
+ </Menu>
+ </Menu>
+ <Menu>
+ <Name>Games</Name>
+ <Include>
+ <Category>Game</Category>
+ <OnlyUnallocated/>
+ </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/g/result b/menu/tests/tests/g/result
new file mode 100644
index 0000000..1942945
--- /dev/null
+++ b/menu/tests/tests/g/result
@@ -0,0 +1,3 @@
+Applications/ KEdit.desktop /tmp/menutestdir/xdg_config_dir/menus/apps/KEdit.desktop
+Applications/ kate.desktop /tmp/menutestdir/xdg_config_dir/menus/apps/kate.desktop
+Applications/ kwrite.desktop /tmp/menutestdir/xdg_config_dir/menus/apps/kwrite.desktop
diff --git a/menu/tests/tests/g/test b/menu/tests/tests/g/test
new file mode 100644
index 0000000..bed0d2d
--- /dev/null
+++ b/menu/tests/tests/g/test
@@ -0,0 +1,25 @@
+echo ">>> a relative <AppDir> tag ..."
+
+# 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
diff --git a/menu/tests/tests/h/result b/menu/tests/tests/h/result
new file mode 100644
index 0000000..9bd54ef
--- /dev/null
+++ b/menu/tests/tests/h/result
@@ -0,0 +1,3 @@
+Apps/ KEdit.desktop /tmp/menutestdir/xdg_data_dir/applications/KEdit.desktop
+Apps/ kate.desktop /tmp/menutestdir/xdg_data_dir/applications/kate.desktop
+Apps/ kwrite.desktop /tmp/menutestdir/xdg_data_dir/applications/kwrite.desktop
diff --git a/menu/tests/tests/h/test b/menu/tests/tests/h/test
new file mode 100644
index 0000000..99b5053
--- /dev/null
+++ b/menu/tests/tests/h/test
@@ -0,0 +1,28 @@
+echo ">>> a relative <DirectoryDir> tag ..."
+
+# 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>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/i/result b/menu/tests/tests/i/result
new file mode 100644
index 0000000..de216fc
--- /dev/null
+++ b/menu/tests/tests/i/result
@@ -0,0 +1,5 @@
+Applications/ KEdit.desktop /tmp/menutestdir/xdg_data_dir/applications/KEdit.desktop
+Applications/ kate.desktop /tmp/menutestdir/xdg_data_dir/applications/kate.desktop
+Applications/ kwrite.desktop /tmp/menutestdir/xdg_data_dir/applications/kwrite.desktop
+Development/ kbabel.desktop /tmp/menutestdir/xdg_data_dir/applications/kbabel.desktop
+Development/ quanta.desktop /tmp/menutestdir/xdg_data_dir/applications/quanta.desktop
diff --git a/menu/tests/tests/i/test b/menu/tests/tests/i/test
new file mode 100644
index 0000000..dc5cf7c
--- /dev/null
+++ b/menu/tests/tests/i/test
@@ -0,0 +1,42 @@
+echo ">>> the <DefaultMergeDirs> tag ..."
+
+# 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/>
+ <DefaultMergeDirs/>
+
+ <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/j/result b/menu/tests/tests/j/result
new file mode 100644
index 0000000..de216fc
--- /dev/null
+++ b/menu/tests/tests/j/result
@@ -0,0 +1,5 @@
+Applications/ KEdit.desktop /tmp/menutestdir/xdg_data_dir/applications/KEdit.desktop
+Applications/ kate.desktop /tmp/menutestdir/xdg_data_dir/applications/kate.desktop
+Applications/ kwrite.desktop /tmp/menutestdir/xdg_data_dir/applications/kwrite.desktop
+Development/ kbabel.desktop /tmp/menutestdir/xdg_data_dir/applications/kbabel.desktop
+Development/ quanta.desktop /tmp/menutestdir/xdg_data_dir/applications/quanta.desktop
diff --git a/menu/tests/tests/j/test b/menu/tests/tests/j/test
new file mode 100644
index 0000000..46d7771
--- /dev/null
+++ b/menu/tests/tests/j/test
@@ -0,0 +1,42 @@
+echo ">>> the <MergeDir> tag ..."
+
+# 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>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/k/result b/menu/tests/tests/k/result
new file mode 100644
index 0000000..de216fc
--- /dev/null
+++ b/menu/tests/tests/k/result
@@ -0,0 +1,5 @@
+Applications/ KEdit.desktop /tmp/menutestdir/xdg_data_dir/applications/KEdit.desktop
+Applications/ kate.desktop /tmp/menutestdir/xdg_data_dir/applications/kate.desktop
+Applications/ kwrite.desktop /tmp/menutestdir/xdg_data_dir/applications/kwrite.desktop
+Development/ kbabel.desktop /tmp/menutestdir/xdg_data_dir/applications/kbabel.desktop
+Development/ quanta.desktop /tmp/menutestdir/xdg_data_dir/applications/quanta.desktop
diff --git a/menu/tests/tests/k/test b/menu/tests/tests/k/test
new file mode 100644
index 0000000..42f0d60
--- /dev/null
+++ b/menu/tests/tests/k/test
@@ -0,0 +1,42 @@
+echo ">>> the <MergeFile> tag ..."
+
+# 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>
+
+ <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