aboutsummaryrefslogtreecommitdiff
path: root/test cases/frameworks
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2020-02-20 21:09:57 +0100
committerDaniel Mensinger <daniel@mensinger-ka.de>2020-02-25 21:47:42 +0100
commit8e60b8c14610fe287df42a76a60148aae86b8284 (patch)
tree83e57cf2b54dd97c4de912ec310a836f03269d2e /test cases/frameworks
parent3065202f6b02b0bfcbd84e0acc5090cdedeeedb4 (diff)
downloadmeson-8e60b8c14610fe287df42a76a60148aae86b8284.zip
meson-8e60b8c14610fe287df42a76a60148aae86b8284.tar.gz
meson-8e60b8c14610fe287df42a76a60148aae86b8284.tar.bz2
test: merge installed_files.txt into test.json
Diffstat (limited to 'test cases/frameworks')
-rw-r--r--test cases/frameworks/10 gtk-doc/installed_files.txt57
-rw-r--r--test cases/frameworks/10 gtk-doc/test.json61
-rw-r--r--test cases/frameworks/11 gir subproject/installed_files.txt8
-rw-r--r--test cases/frameworks/11 gir subproject/test.json12
-rw-r--r--test cases/frameworks/12 multiple gir/installed_files.txt8
-rw-r--r--test cases/frameworks/12 multiple gir/test.json12
-rw-r--r--test cases/frameworks/13 yelp/installed_files.txt18
-rw-r--r--test cases/frameworks/13 yelp/test.json22
-rw-r--r--test cases/frameworks/14 doxygen/installed_files.txt83
-rw-r--r--test cases/frameworks/14 doxygen/test.json87
-rw-r--r--test cases/frameworks/23 hotdoc/installed_files.txt314
-rw-r--r--test cases/frameworks/23 hotdoc/test.json318
-rw-r--r--test cases/frameworks/6 gettext/installed_files.txt10
-rw-r--r--test cases/frameworks/6 gettext/test.json14
-rw-r--r--test cases/frameworks/7 gnome/installed_files.txt24
-rw-r--r--test cases/frameworks/7 gnome/test.json28
16 files changed, 554 insertions, 522 deletions
diff --git a/test cases/frameworks/10 gtk-doc/installed_files.txt b/test cases/frameworks/10 gtk-doc/installed_files.txt
deleted file mode 100644
index 952a724..0000000
--- a/test cases/frameworks/10 gtk-doc/installed_files.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-usr/include/foo-version.h
-usr/share/gtk-doc/html/foobar/BAR.html
-usr/share/gtk-doc/html/foobar/foobar.devhelp2
-usr/share/gtk-doc/html/foobar/foobar.html
-usr/share/gtk-doc/html/foobar/foobar-foo.html
-usr/share/gtk-doc/html/foobar/foobar-foo-version.html
-usr/share/gtk-doc/html/foobar/home.png
-usr/share/gtk-doc/html/foobar/index.html
-usr/share/gtk-doc/html/foobar/left.png
-usr/share/gtk-doc/html/foobar/left-insensitive.png
-usr/share/gtk-doc/html/foobar/right.png
-usr/share/gtk-doc/html/foobar/right-insensitive.png
-usr/share/gtk-doc/html/foobar/style.css
-usr/share/gtk-doc/html/foobar/up.png
-usr/share/gtk-doc/html/foobar/up-insensitive.png
-usr/share/gtk-doc/html/foobar2/BAR.html
-usr/share/gtk-doc/html/foobar2/foobar2.devhelp2
-usr/share/gtk-doc/html/foobar2/foobar.html
-usr/share/gtk-doc/html/foobar2/foobar2-foo.html
-usr/share/gtk-doc/html/foobar2/foobar2-foo-version.html
-usr/share/gtk-doc/html/foobar2/home.png
-usr/share/gtk-doc/html/foobar2/index.html
-usr/share/gtk-doc/html/foobar2/left.png
-usr/share/gtk-doc/html/foobar2/left-insensitive.png
-usr/share/gtk-doc/html/foobar2/right.png
-usr/share/gtk-doc/html/foobar2/right-insensitive.png
-usr/share/gtk-doc/html/foobar2/style.css
-usr/share/gtk-doc/html/foobar2/up.png
-usr/share/gtk-doc/html/foobar2/up-insensitive.png
-usr/share/gtk-doc/html/foobar-3.0/BAR.html
-usr/share/gtk-doc/html/foobar-3.0/foobar-3.0.devhelp2
-usr/share/gtk-doc/html/foobar-3.0/foobar.html
-usr/share/gtk-doc/html/foobar-3.0/foobar-foo.html
-usr/share/gtk-doc/html/foobar-3.0/foobar-foo-version.html
-usr/share/gtk-doc/html/foobar-3.0/home.png
-usr/share/gtk-doc/html/foobar-3.0/index.html
-usr/share/gtk-doc/html/foobar-3.0/left.png
-usr/share/gtk-doc/html/foobar-3.0/left-insensitive.png
-usr/share/gtk-doc/html/foobar-3.0/right.png
-usr/share/gtk-doc/html/foobar-3.0/right-insensitive.png
-usr/share/gtk-doc/html/foobar-3.0/style.css
-usr/share/gtk-doc/html/foobar-3.0/up.png
-usr/share/gtk-doc/html/foobar-3.0/up-insensitive.png
-usr/share/gtk-doc/html/foobar3/BAR.html
-usr/share/gtk-doc/html/foobar3/foobar2-3.0.devhelp2
-usr/share/gtk-doc/html/foobar3/foobar.html
-usr/share/gtk-doc/html/foobar3/foobar2-foo.html
-usr/share/gtk-doc/html/foobar3/foobar2-foo-version.html
-usr/share/gtk-doc/html/foobar3/home.png
-usr/share/gtk-doc/html/foobar3/index.html
-usr/share/gtk-doc/html/foobar3/left.png
-usr/share/gtk-doc/html/foobar3/left-insensitive.png
-usr/share/gtk-doc/html/foobar3/right.png
-usr/share/gtk-doc/html/foobar3/right-insensitive.png
-usr/share/gtk-doc/html/foobar3/style.css
-usr/share/gtk-doc/html/foobar3/up.png
-usr/share/gtk-doc/html/foobar3/up-insensitive.png
diff --git a/test cases/frameworks/10 gtk-doc/test.json b/test cases/frameworks/10 gtk-doc/test.json
new file mode 100644
index 0000000..c44126c
--- /dev/null
+++ b/test cases/frameworks/10 gtk-doc/test.json
@@ -0,0 +1,61 @@
+{
+ "installed": [
+ {"type": "file", "file": "usr/include/foo-version.h"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/BAR.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.devhelp2"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo-version.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/home.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/index.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/left.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/left-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/right.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/right-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/style.css"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/up.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/up-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/BAR.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/foobar2.devhelp2"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/foobar.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/foobar2-foo.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/foobar2-foo-version.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/home.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/index.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/left.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/left-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/right.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/right-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/style.css"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/up.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar2/up-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/BAR.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/foobar-3.0.devhelp2"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/foobar.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/foobar-foo.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/foobar-foo-version.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/home.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/index.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/left.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/left-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/right.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/right-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/style.css"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/up.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar-3.0/up-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/BAR.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/foobar2-3.0.devhelp2"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/foobar.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/foobar2-foo.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/foobar2-foo-version.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/home.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/index.html"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/left.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/left-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/right.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/right-insensitive.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/style.css"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/up.png"},
+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar3/up-insensitive.png"}
+ ]
+}
diff --git a/test cases/frameworks/11 gir subproject/installed_files.txt b/test cases/frameworks/11 gir subproject/installed_files.txt
deleted file mode 100644
index 6f11f54..0000000
--- a/test cases/frameworks/11 gir subproject/installed_files.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-usr/lib/girepository-1.0/Meson-1.0.typelib
-usr/lib/girepository-1.0/MesonSub-1.0.typelib
-usr/share/gir-1.0/Meson-1.0.gir
-usr/share/gir-1.0/MesonSub-1.0.gir
-usr/lib/?libgirsubproject.so
-?cygwin:usr/lib/libgirlib.dll.a
-usr/lib/?libgirlib.so
-?cygwin:usr/lib/libgirsubproject.dll.a
diff --git a/test cases/frameworks/11 gir subproject/test.json b/test cases/frameworks/11 gir subproject/test.json
new file mode 100644
index 0000000..e94152e
--- /dev/null
+++ b/test cases/frameworks/11 gir subproject/test.json
@@ -0,0 +1,12 @@
+{
+ "installed": [
+ {"type": "file", "file": "usr/lib/girepository-1.0/Meson-1.0.typelib"},
+ {"type": "file", "file": "usr/lib/girepository-1.0/MesonSub-1.0.typelib"},
+ {"type": "file", "file": "usr/share/gir-1.0/Meson-1.0.gir"},
+ {"type": "file", "file": "usr/share/gir-1.0/MesonSub-1.0.gir"},
+ {"type": "expr", "file": "usr/lib/?libgirsubproject.so"},
+ {"type": "file", "platform": "cygwin", "file": "usr/lib/libgirlib.dll.a"},
+ {"type": "expr", "file": "usr/lib/?libgirlib.so"},
+ {"type": "file", "platform": "cygwin", "file": "usr/lib/libgirsubproject.dll.a"}
+ ]
+}
diff --git a/test cases/frameworks/12 multiple gir/installed_files.txt b/test cases/frameworks/12 multiple gir/installed_files.txt
deleted file mode 100644
index 3f9a8f2..0000000
--- a/test cases/frameworks/12 multiple gir/installed_files.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-usr/lib/girepository-1.0/Meson-1.0.typelib
-usr/lib/girepository-1.0/MesonSub-1.0.typelib
-usr/lib/?libgirlib.so
-?cygwin:usr/lib/libgirlib.dll.a
-usr/lib/?libgirsubproject.so
-?cygwin:usr/lib/libgirsubproject.dll.a
-usr/share/gir-1.0/Meson-1.0.gir
-usr/share/gir-1.0/MesonSub-1.0.gir
diff --git a/test cases/frameworks/12 multiple gir/test.json b/test cases/frameworks/12 multiple gir/test.json
new file mode 100644
index 0000000..4e3624c
--- /dev/null
+++ b/test cases/frameworks/12 multiple gir/test.json
@@ -0,0 +1,12 @@
+{
+ "installed": [
+ {"type": "file", "file": "usr/lib/girepository-1.0/Meson-1.0.typelib"},
+ {"type": "file", "file": "usr/lib/girepository-1.0/MesonSub-1.0.typelib"},
+ {"type": "expr", "file": "usr/lib/?libgirlib.so"},
+ {"type": "file", "platform": "cygwin", "file": "usr/lib/libgirlib.dll.a"},
+ {"type": "expr", "file": "usr/lib/?libgirsubproject.so"},
+ {"type": "file", "platform": "cygwin", "file": "usr/lib/libgirsubproject.dll.a"},
+ {"type": "file", "file": "usr/share/gir-1.0/Meson-1.0.gir"},
+ {"type": "file", "file": "usr/share/gir-1.0/MesonSub-1.0.gir"}
+ ]
+}
diff --git a/test cases/frameworks/13 yelp/installed_files.txt b/test cases/frameworks/13 yelp/installed_files.txt
deleted file mode 100644
index 1f6522f..0000000
--- a/test cases/frameworks/13 yelp/installed_files.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-usr/share/help/C/meson/index.page
-usr/share/help/C/meson/media/test.txt
-usr/share/help/es/meson/index.page
-usr/share/help/es/meson/media/test.txt
-usr/share/help/de/meson/index.page
-usr/share/help/de/meson/media/test.txt
-usr/share/help/C/meson-symlink/index.page
-usr/share/help/C/meson-symlink/media/test.txt
-usr/share/help/es/meson-symlink/media/test.txt
-usr/share/help/es/meson-symlink/index.page
-usr/share/help/de/meson-symlink/index.page
-usr/share/help/de/meson-symlink/media/test.txt
-usr/share/help/C/meson-linguas/index.page
-usr/share/help/C/meson-linguas/media/test.txt
-usr/share/help/es/meson-linguas/media/test.txt
-usr/share/help/es/meson-linguas/index.page
-usr/share/help/de/meson-linguas/index.page
-usr/share/help/de/meson-linguas/media/test.txt
diff --git a/test cases/frameworks/13 yelp/test.json b/test cases/frameworks/13 yelp/test.json
new file mode 100644
index 0000000..070fb32
--- /dev/null
+++ b/test cases/frameworks/13 yelp/test.json
@@ -0,0 +1,22 @@
+{
+ "installed": [
+ {"type": "file", "file": "usr/share/help/C/meson/index.page"},
+ {"type": "file", "file": "usr/share/help/C/meson/media/test.txt"},
+ {"type": "file", "file": "usr/share/help/es/meson/index.page"},
+ {"type": "file", "file": "usr/share/help/es/meson/media/test.txt"},
+ {"type": "file", "file": "usr/share/help/de/meson/index.page"},
+ {"type": "file", "file": "usr/share/help/de/meson/media/test.txt"},
+ {"type": "file", "file": "usr/share/help/C/meson-symlink/index.page"},
+ {"type": "file", "file": "usr/share/help/C/meson-symlink/media/test.txt"},
+ {"type": "file", "file": "usr/share/help/es/meson-symlink/media/test.txt"},
+ {"type": "file", "file": "usr/share/help/es/meson-symlink/index.page"},
+ {"type": "file", "file": "usr/share/help/de/meson-symlink/index.page"},
+ {"type": "file", "file": "usr/share/help/de/meson-symlink/media/test.txt"},
+ {"type": "file", "file": "usr/share/help/C/meson-linguas/index.page"},
+ {"type": "file", "file": "usr/share/help/C/meson-linguas/media/test.txt"},
+ {"type": "file", "file": "usr/share/help/es/meson-linguas/media/test.txt"},
+ {"type": "file", "file": "usr/share/help/es/meson-linguas/index.page"},
+ {"type": "file", "file": "usr/share/help/de/meson-linguas/index.page"},
+ {"type": "file", "file": "usr/share/help/de/meson-linguas/media/test.txt"}
+ ]
+}
diff --git a/test cases/frameworks/14 doxygen/installed_files.txt b/test cases/frameworks/14 doxygen/installed_files.txt
deleted file mode 100644
index e4f70e3..0000000
--- a/test cases/frameworks/14 doxygen/installed_files.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-usr/share/doc/spede/html/annotated.html
-usr/share/doc/spede/html/bc_s.png
-usr/share/doc/spede/html/bdwn.png
-usr/share/doc/spede/html/classComedy_1_1Comedian.html
-usr/share/doc/spede/html/classComedy_1_1Comedian.png
-usr/share/doc/spede/html/classComedy_1_1Comedian-members.html
-usr/share/doc/spede/html/classComedy_1_1Spede.html
-usr/share/doc/spede/html/classComedy_1_1Spede.png
-usr/share/doc/spede/html/classComedy_1_1Spede-members.html
-usr/share/doc/spede/html/classes.html
-usr/share/doc/spede/html/closed.png
-usr/share/doc/spede/html/comedian_8h_source.html
-usr/share/doc/spede/html/dir_7bdce917e28dfbd493cadd1d2e5c7d80.html
-usr/share/doc/spede/html/dir_44a4667d36a4476878de085754f6d2b9.html
-usr/share/doc/spede/html/dir_68b523c5b3a2dcea45d5ce70397fb722.html
-usr/share/doc/spede/html/dir_a7e6472d2301212032fd74682f8217f3.html
-usr/share/doc/spede/html/dir_ee191f21c02d247cc959e80c1a3acadf.html
-usr/share/doc/spede/html/doc.png
-usr/share/doc/spede/html/doxygen.css
-usr/share/doc/spede/html/doxygen.png
-usr/share/doc/spede/html/dynsections.js
-usr/share/doc/spede/html/files.html
-usr/share/doc/spede/html/folderclosed.png
-usr/share/doc/spede/html/folderopen.png
-usr/share/doc/spede/html/functions.html
-usr/share/doc/spede/html/functions_func.html
-usr/share/doc/spede/html/hierarchy.html
-usr/share/doc/spede/html/index.html
-usr/share/doc/spede/html/jquery.js
-usr/share/doc/spede/html/menu.js
-usr/share/doc/spede/html/menudata.js
-usr/share/doc/spede/html/namespaceComedy.html
-usr/share/doc/spede/html/namespacemembers.html
-usr/share/doc/spede/html/namespacemembers_func.html
-usr/share/doc/spede/html/namespaces.html
-usr/share/doc/spede/html/nav_f.png
-usr/share/doc/spede/html/nav_g.png
-usr/share/doc/spede/html/nav_h.png
-usr/share/doc/spede/html/open.png
-usr/share/doc/spede/html/search/all_0.html
-usr/share/doc/spede/html/search/all_0.js
-usr/share/doc/spede/html/search/all_1.html
-usr/share/doc/spede/html/search/all_1.js
-usr/share/doc/spede/html/search/all_2.html
-usr/share/doc/spede/html/search/all_2.js
-usr/share/doc/spede/html/search/all_3.html
-usr/share/doc/spede/html/search/all_3.js
-usr/share/doc/spede/html/search/classes_0.html
-usr/share/doc/spede/html/search/classes_0.js
-usr/share/doc/spede/html/search/classes_1.html
-usr/share/doc/spede/html/search/classes_1.js
-usr/share/doc/spede/html/search/close.png
-usr/share/doc/spede/html/search/files_0.html
-usr/share/doc/spede/html/search/files_0.js
-usr/share/doc/spede/html/search/functions_0.html
-usr/share/doc/spede/html/search/functions_0.js
-usr/share/doc/spede/html/search/functions_1.html
-usr/share/doc/spede/html/search/functions_1.js
-usr/share/doc/spede/html/search/functions_2.html
-usr/share/doc/spede/html/search/functions_2.js
-usr/share/doc/spede/html/search/mag_sel.png
-usr/share/doc/spede/html/search/namespaces_0.html
-usr/share/doc/spede/html/search/namespaces_0.js
-usr/share/doc/spede/html/search/nomatches.html
-usr/share/doc/spede/html/search/pages_0.html
-usr/share/doc/spede/html/search/pages_0.js
-usr/share/doc/spede/html/search/search.css
-usr/share/doc/spede/html/search/search.js
-usr/share/doc/spede/html/search/searchdata.js
-usr/share/doc/spede/html/search/search_l.png
-usr/share/doc/spede/html/search/search_m.png
-usr/share/doc/spede/html/search/search_r.png
-usr/share/doc/spede/html/spede_8cpp.html
-usr/share/doc/spede/html/spede_8h.html
-usr/share/doc/spede/html/spede_8h_source.html
-usr/share/doc/spede/html/splitbar.png
-usr/share/doc/spede/html/sync_off.png
-usr/share/doc/spede/html/sync_on.png
-usr/share/doc/spede/html/tabs.css
-usr/share/doc/spede/html/tab_a.png
-usr/share/doc/spede/html/tab_b.png
-usr/share/doc/spede/html/tab_h.png
-usr/share/doc/spede/html/tab_s.png
diff --git a/test cases/frameworks/14 doxygen/test.json b/test cases/frameworks/14 doxygen/test.json
new file mode 100644
index 0000000..85fdf73
--- /dev/null
+++ b/test cases/frameworks/14 doxygen/test.json
@@ -0,0 +1,87 @@
+{
+ "installed": [
+ {"type": "file", "file": "usr/share/doc/spede/html/annotated.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/bc_s.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/bdwn.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Comedian.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Comedian.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Comedian-members.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Spede.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Spede.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Spede-members.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/classes.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/closed.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/comedian_8h_source.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/dir_7bdce917e28dfbd493cadd1d2e5c7d80.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/dir_44a4667d36a4476878de085754f6d2b9.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/dir_68b523c5b3a2dcea45d5ce70397fb722.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/dir_a7e6472d2301212032fd74682f8217f3.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/dir_ee191f21c02d247cc959e80c1a3acadf.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/doc.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/doxygen.css"},
+ {"type": "file", "file": "usr/share/doc/spede/html/doxygen.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/dynsections.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/files.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/folderclosed.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/folderopen.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/functions.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/functions_func.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/hierarchy.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/index.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/jquery.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/menu.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/menudata.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/namespaceComedy.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/namespacemembers.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/namespacemembers_func.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/namespaces.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/nav_f.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/nav_g.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/nav_h.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/open.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/all_0.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/all_0.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/all_1.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/all_1.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/all_2.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/all_2.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/all_3.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/all_3.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/classes_0.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/classes_0.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/classes_1.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/classes_1.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/close.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/files_0.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/files_0.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/functions_0.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/functions_0.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/functions_1.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/functions_1.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/functions_2.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/functions_2.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/mag_sel.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/namespaces_0.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/namespaces_0.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/nomatches.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/pages_0.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/pages_0.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/search.css"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/search.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/searchdata.js"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/search_l.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/search_m.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/search/search_r.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/spede_8cpp.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/spede_8h.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/spede_8h_source.html"},
+ {"type": "file", "file": "usr/share/doc/spede/html/splitbar.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/sync_off.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/sync_on.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/tabs.css"},
+ {"type": "file", "file": "usr/share/doc/spede/html/tab_a.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/tab_b.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/tab_h.png"},
+ {"type": "file", "file": "usr/share/doc/spede/html/tab_s.png"}
+ ]
+}
diff --git a/test cases/frameworks/23 hotdoc/installed_files.txt b/test cases/frameworks/23 hotdoc/installed_files.txt
deleted file mode 100644
index 82597a2..0000000
--- a/test cases/frameworks/23 hotdoc/installed_files.txt
+++ /dev/null
@@ -1,314 +0,0 @@
-usr/share/doc/foobar/html/foo.html
-usr/share/doc/foobar/html/c-index.html
-usr/share/doc/foobar/html/index.html
-usr/share/doc/foobar/html/dumped.trie
-usr/share/doc/foobar/html/assets/theme.json
-usr/share/doc/foobar/html/assets/css/prism-tomorrow.css
-usr/share/doc/foobar/html/assets/css/bootstrap-toc.min.css
-usr/share/doc/foobar/html/assets/css/frontend.css
-usr/share/doc/foobar/html/assets/css/dumped.trie
-usr/share/doc/foobar/html/assets/css/jquery.mCustomScrollbar.min.css
-usr/share/doc/foobar/html/assets/css/custom_bootstrap.css
-usr/share/doc/foobar/html/assets/templates/navbar_links.html
-usr/share/doc/foobar/html/assets/templates/scripts.html
-usr/share/doc/foobar/html/assets/templates/stylesheets.html
-usr/share/doc/foobar/html/assets/templates/multi_return_value.html
-usr/share/doc/foobar/html/assets/templates/parameters.html
-usr/share/doc/foobar/html/assets/templates/base_page.html
-usr/share/doc/foobar/html/assets/templates/footer.html
-usr/share/doc/foobar/html/assets/templates/extra_head.html
-usr/share/doc/foobar/html/assets/templates/parameter_detail.html
-usr/share/doc/foobar/html/assets/templates/navbar_center.html
-usr/share/doc/foobar/html/assets/templates/enum_member.html
-usr/share/doc/foobar/html/assets/templates/member_list.html
-usr/share/doc/foobar/html/assets/templates/return_item.html
-usr/share/doc/foobar/html/assets/templates/subpages.html
-usr/share/doc/foobar/html/assets/templates/dumped.trie
-usr/share/doc/foobar/html/assets/templates/page_content.html
-usr/share/doc/foobar/html/assets/templates/navbar.html
-usr/share/doc/foobar/html/assets/templates/site_navigation.html
-usr/share/doc/foobar/html/assets/templates/field_detail.html
-usr/share/doc/foobar/html/assets/templates/brand-logo.html
-usr/share/doc/foobar/html/assets/js/prism_autoloader_path_override.js
-usr/share/doc/foobar/html/assets/js/jquery.js
-usr/share/doc/foobar/html/assets/js/scrollspy.js
-usr/share/doc/foobar/html/assets/js/isotope.pkgd.min.js
-usr/share/doc/foobar/html/assets/js/utils.js
-usr/share/doc/foobar/html/assets/js/typeahead.jquery.min.js
-usr/share/doc/foobar/html/assets/js/language_switching.js
-usr/share/doc/foobar/html/assets/js/tag_filtering.js
-usr/share/doc/foobar/html/assets/js/prism-autoloader.js
-usr/share/doc/foobar/html/assets/js/navbar_offset_scroller.js
-usr/share/doc/foobar/html/assets/js/lines_around_headings.js
-usr/share/doc/foobar/html/assets/js/trie_index.js
-usr/share/doc/foobar/html/assets/js/search.js
-usr/share/doc/foobar/html/assets/js/trie.js
-usr/share/doc/foobar/html/assets/js/bootstrap.js
-usr/share/doc/foobar/html/assets/js/navigation.js
-usr/share/doc/foobar/html/assets/js/bootstrap-toc.min.js
-usr/share/doc/foobar/html/assets/js/anchor.min.js
-usr/share/doc/foobar/html/assets/js/prism-core.js
-usr/share/doc/foobar/html/assets/js/sitemap.js
-usr/share/doc/foobar/html/assets/js/dumped.trie
-usr/share/doc/foobar/html/assets/js/mustache.min.js
-usr/share/doc/foobar/html/assets/js/compare-versions.js
-usr/share/doc/foobar/html/assets/js/jquery.touchSwipe.min.js
-usr/share/doc/foobar/html/assets/js/jquery.mCustomScrollbar.concat.min.js
-usr/share/doc/foobar/html/assets/js/search/members
-usr/share/doc/foobar/html/assets/js/search/Hello
-usr/share/doc/foobar/html/assets/js/search/hello
-usr/share/doc/foobar/html/assets/js/search/type
-usr/share/doc/foobar/html/assets/js/search/FooIndecision
-usr/share/doc/foobar/html/assets/js/search/fooindecision
-usr/share/doc/foobar/html/assets/js/search/Members
-usr/share/doc/foobar/html/assets/js/search/dumped.trie
-usr/share/doc/foobar/html/assets/js/search/indecision
-usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/index.html-hello-world.fragment
-usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/dumped.trie
-usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/foo.html-FooIndecision.fragment
-usr/share/doc/foobar/html/assets/js/search/Subpages
-usr/share/doc/foobar/html/assets/js/search/foo
-usr/share/doc/foobar/html/assets/js/search/API
-usr/share/doc/foobar/html/assets/js/search/Reference
-usr/share/doc/foobar/html/assets/js/search/api
-usr/share/doc/foobar/html/assets/js/search/reference
-usr/share/doc/foobar/html/assets/js/search/subpages
-usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/index.html-subpages.fragment
-usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/c-index.html-subpages.fragment
-usr/share/doc/foobar/html/assets/prism_components/prism-inform7.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-pascal.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-bro.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nim.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-gherkin.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-stylus.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-ocaml.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-powershell.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-smalltalk.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-verilog.js
-usr/share/doc/foobar/html/assets/prism_components/prism-puppet.js
-usr/share/doc/foobar/html/assets/prism_components/prism-aspnet.js
-usr/share/doc/foobar/html/assets/prism_components/prism-parigp.js
-usr/share/doc/foobar/html/assets/prism_components/prism-objectivec.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-processing.js
-usr/share/doc/foobar/html/assets/prism_components/prism-objectivec.js
-usr/share/doc/foobar/html/assets/prism_components/prism-jsx.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nginx.js
-usr/share/doc/foobar/html/assets/prism_components/prism-powershell.js
-usr/share/doc/foobar/html/assets/prism_components/prism-php.js
-usr/share/doc/foobar/html/assets/prism_components/prism-smarty.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-roboconf.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-batch.js
-usr/share/doc/foobar/html/assets/prism_components/prism-vhdl.js
-usr/share/doc/foobar/html/assets/prism_components/prism-protobuf.js
-usr/share/doc/foobar/html/assets/prism_components/prism-textile.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-crystal.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-scss.js
-usr/share/doc/foobar/html/assets/prism_components/prism-bro.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-smarty.js
-usr/share/doc/foobar/html/assets/prism_components/prism-bison.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-tcl.js
-usr/share/doc/foobar/html/assets/prism_components/prism-pure.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-makefile.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-applescript.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-css-extras.js
-usr/share/doc/foobar/html/assets/prism_components/prism-stylus.js
-usr/share/doc/foobar/html/assets/prism_components/prism-q.js
-usr/share/doc/foobar/html/assets/prism_components/prism-dart.js
-usr/share/doc/foobar/html/assets/prism_components/prism-oz.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-haskell.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-clike.js
-usr/share/doc/foobar/html/assets/prism_components/prism-kotlin.js
-usr/share/doc/foobar/html/assets/prism_components/prism-http.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-bash.js
-usr/share/doc/foobar/html/assets/prism_components/prism-apl.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-docker.js
-usr/share/doc/foobar/html/assets/prism_components/prism-sass.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-basic.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nasm.js
-usr/share/doc/foobar/html/assets/prism_components/prism-kotlin.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-abap.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-perl.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-rust.js
-usr/share/doc/foobar/html/assets/prism_components/prism-c.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-scala.js
-usr/share/doc/foobar/html/assets/prism_components/prism-glsl.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-lua.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-coffeescript.js
-usr/share/doc/foobar/html/assets/prism_components/prism-jade.js
-usr/share/doc/foobar/html/assets/prism_components/prism-keyman.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-crystal.js
-usr/share/doc/foobar/html/assets/prism_components/prism-rest.js
-usr/share/doc/foobar/html/assets/prism_components/prism-json.js
-usr/share/doc/foobar/html/assets/prism_components/prism-roboconf.js
-usr/share/doc/foobar/html/assets/prism_components/prism-twig.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-dart.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-vim.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-handlebars.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-cpp.js
-usr/share/doc/foobar/html/assets/prism_components/prism-fsharp.js
-usr/share/doc/foobar/html/assets/prism_components/prism-sas.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-brainfuck.js
-usr/share/doc/foobar/html/assets/prism_components/prism-haxe.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-julia.js
-usr/share/doc/foobar/html/assets/prism_components/prism-jade.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-python.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nim.js
-usr/share/doc/foobar/html/assets/prism_components/prism-typescript.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-csharp.js
-usr/share/doc/foobar/html/assets/prism_components/prism-brainfuck.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-asciidoc.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-groovy.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-applescript.js
-usr/share/doc/foobar/html/assets/prism_components/prism-elixir.js
-usr/share/doc/foobar/html/assets/prism_components/prism-diff.js
-usr/share/doc/foobar/html/assets/prism_components/prism-scheme.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-parser.js
-usr/share/doc/foobar/html/assets/prism_components/prism-qore.js
-usr/share/doc/foobar/html/assets/prism_components/prism-yaml.js
-usr/share/doc/foobar/html/assets/prism_components/prism-j.js
-usr/share/doc/foobar/html/assets/prism_components/prism-mel.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-css-extras.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-erlang.js
-usr/share/doc/foobar/html/assets/prism_components/prism-icon.js
-usr/share/doc/foobar/html/assets/prism_components/prism-actionscript.js
-usr/share/doc/foobar/html/assets/prism_components/prism-cpp.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-makefile.js
-usr/share/doc/foobar/html/assets/prism_components/prism-q.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nsis.js
-usr/share/doc/foobar/html/assets/prism_components/prism-mizar.js
-usr/share/doc/foobar/html/assets/prism_components/prism-wiki.js
-usr/share/doc/foobar/html/assets/prism_components/prism-csharp.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-julia.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-coffeescript.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-sql.js
-usr/share/doc/foobar/html/assets/prism_components/prism-php-extras.js
-usr/share/doc/foobar/html/assets/prism_components/prism-basic.js
-usr/share/doc/foobar/html/assets/prism_components/prism-swift.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-haxe.js
-usr/share/doc/foobar/html/assets/prism_components/prism-apacheconf.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-javascript.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-markup.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-keyman.js
-usr/share/doc/foobar/html/assets/prism_components/prism-sql.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-php-extras.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-scheme.js
-usr/share/doc/foobar/html/assets/prism_components/prism-python.js
-usr/share/doc/foobar/html/assets/prism_components/prism-autoit.js
-usr/share/doc/foobar/html/assets/prism_components/prism-gherkin.js
-usr/share/doc/foobar/html/assets/prism_components/prism-java.js
-usr/share/doc/foobar/html/assets/prism_components/prism-parigp.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-autohotkey.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-ruby.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nginx.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-core.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-fortran.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nasm.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-ini.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-protobuf.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-jsx.js
-usr/share/doc/foobar/html/assets/prism_components/prism-markdown.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nix.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nsis.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-oz.js
-usr/share/doc/foobar/html/assets/prism_components/prism-less.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-abap.js
-usr/share/doc/foobar/html/assets/prism_components/prism-puppet.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-nix.js
-usr/share/doc/foobar/html/assets/prism_components/prism-pascal.js
-usr/share/doc/foobar/html/assets/prism_components/prism-latex.js
-usr/share/doc/foobar/html/assets/prism_components/prism-verilog.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-aspnet.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-go.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-glsl.js
-usr/share/doc/foobar/html/assets/prism_components/prism-inform7.js
-usr/share/doc/foobar/html/assets/prism_components/prism-yaml.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-matlab.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-lua.js
-usr/share/doc/foobar/html/assets/prism_components/prism-mizar.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-c.js
-usr/share/doc/foobar/html/assets/prism_components/prism-fsharp.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-haml.js
-usr/share/doc/foobar/html/assets/prism_components/prism-rust.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-icon.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-fortran.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-qore.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-batch.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-eiffel.js
-usr/share/doc/foobar/html/assets/prism_components/prism-vim.js
-usr/share/doc/foobar/html/assets/prism_components/prism-j.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-eiffel.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-elixir.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-erlang.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-matlab.js
-usr/share/doc/foobar/html/assets/prism_components/prism-tcl.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-ruby.js
-usr/share/doc/foobar/html/assets/prism_components/prism-d.js
-usr/share/doc/foobar/html/assets/prism_components/prism-swift.js
-usr/share/doc/foobar/html/assets/prism_components/prism-wiki.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-lolcode.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-latex.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-prolog.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-php.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-scss.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-vhdl.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-lolcode.js
-usr/share/doc/foobar/html/assets/prism_components/prism-prolog.js
-usr/share/doc/foobar/html/assets/prism_components/prism-apacheconf.js
-usr/share/doc/foobar/html/assets/prism_components/prism-core.js
-usr/share/doc/foobar/html/assets/prism_components/prism-diff.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-json.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-ini.js
-usr/share/doc/foobar/html/assets/prism_components/dumped.trie
-usr/share/doc/foobar/html/assets/prism_components/prism-r.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-markup.js
-usr/share/doc/foobar/html/assets/prism_components/prism-apl.js
-usr/share/doc/foobar/html/assets/prism_components/prism-markdown.js
-usr/share/doc/foobar/html/assets/prism_components/prism-asciidoc.js
-usr/share/doc/foobar/html/assets/prism_components/prism-ocaml.js
-usr/share/doc/foobar/html/assets/prism_components/prism-javascript.js
-usr/share/doc/foobar/html/assets/prism_components/prism-autohotkey.js
-usr/share/doc/foobar/html/assets/prism_components/prism-less.js
-usr/share/doc/foobar/html/assets/prism_components/prism-pure.js
-usr/share/doc/foobar/html/assets/prism_components/prism-groovy.js
-usr/share/doc/foobar/html/assets/prism_components/prism-bison.js
-usr/share/doc/foobar/html/assets/prism_components/prism-sass.js
-usr/share/doc/foobar/html/assets/prism_components/prism-css.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-haml.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-handlebars.js
-usr/share/doc/foobar/html/assets/prism_components/prism-textile.js
-usr/share/doc/foobar/html/assets/prism_components/prism-parser.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-docker.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-monkey.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-http.js
-usr/share/doc/foobar/html/assets/prism_components/prism-git.js
-usr/share/doc/foobar/html/assets/prism_components/prism-sas.js
-usr/share/doc/foobar/html/assets/prism_components/prism-go.js
-usr/share/doc/foobar/html/assets/prism_components/prism-mel.js
-usr/share/doc/foobar/html/assets/prism_components/prism-rest.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-clike.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-d.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-haskell.js
-usr/share/doc/foobar/html/assets/prism_components/prism-git.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-java.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-rip.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-perl.js
-usr/share/doc/foobar/html/assets/prism_components/prism-typescript.js
-usr/share/doc/foobar/html/assets/prism_components/prism-actionscript.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-autoit.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-rip.js
-usr/share/doc/foobar/html/assets/prism_components/prism-twig.js
-usr/share/doc/foobar/html/assets/prism_components/prism-monkey.js
-usr/share/doc/foobar/html/assets/prism_components/prism-processing.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-scala.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-smalltalk.js
-usr/share/doc/foobar/html/assets/prism_components/prism-bash.min.js
-usr/share/doc/foobar/html/assets/prism_components/prism-r.js
-usr/share/doc/foobar/html/assets/prism_components/prism-css.js
-usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.woff
-usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.woff2
-usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.svg
-usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.ttf
-usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.eot
-usr/share/doc/foobar/html/assets/fonts/dumped.trie
-usr/share/doc/foobar/html/assets/images/home.svg
-usr/share/doc/foobar/html/assets/images/dumped.trie
diff --git a/test cases/frameworks/23 hotdoc/test.json b/test cases/frameworks/23 hotdoc/test.json
new file mode 100644
index 0000000..e2d4992
--- /dev/null
+++ b/test cases/frameworks/23 hotdoc/test.json
@@ -0,0 +1,318 @@
+{
+ "installed": [
+ {"type": "file", "file": "usr/share/doc/foobar/html/foo.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/c-index.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/index.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/dumped.trie"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/theme.json"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/css/prism-tomorrow.css"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/css/bootstrap-toc.min.css"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/css/frontend.css"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/css/dumped.trie"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/css/jquery.mCustomScrollbar.min.css"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/css/custom_bootstrap.css"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/navbar_links.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/scripts.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/stylesheets.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/multi_return_value.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/parameters.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/base_page.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/footer.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/extra_head.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/parameter_detail.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/navbar_center.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/enum_member.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/member_list.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/return_item.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/subpages.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/dumped.trie"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/page_content.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/navbar.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/site_navigation.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/field_detail.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/brand-logo.html"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/prism_autoloader_path_override.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/jquery.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/scrollspy.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/isotope.pkgd.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/utils.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/typeahead.jquery.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/language_switching.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/tag_filtering.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/prism-autoloader.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/navbar_offset_scroller.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/lines_around_headings.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/trie_index.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/trie.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/bootstrap.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/navigation.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/bootstrap-toc.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/anchor.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/prism-core.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/sitemap.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/dumped.trie"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/mustache.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/compare-versions.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/jquery.touchSwipe.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/jquery.mCustomScrollbar.concat.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/members"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/Hello"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hello"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/type"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/FooIndecision"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/fooindecision"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/Members"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/dumped.trie"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/indecision"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/index.html-hello-world.fragment"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/dumped.trie"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/foo.html-FooIndecision.fragment"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/Subpages"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/foo"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/API"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/Reference"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/api"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/reference"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/subpages"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/index.html-subpages.fragment"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/c-index.html-subpages.fragment"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-inform7.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-pascal.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bro.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nim.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-gherkin.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-stylus.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ocaml.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-powershell.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-smalltalk.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-verilog.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-puppet.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-aspnet.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-parigp.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-objectivec.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-processing.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-objectivec.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-jsx.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nginx.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-powershell.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-php.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-smarty.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-roboconf.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-batch.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-vhdl.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-protobuf.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-textile.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-crystal.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scss.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bro.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-smarty.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bison.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-tcl.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-pure.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-makefile.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-applescript.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-css-extras.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-stylus.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-q.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-dart.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-oz.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haskell.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-clike.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-kotlin.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-http.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bash.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-apl.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-docker.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sass.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-basic.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nasm.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-kotlin.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-abap.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-perl.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rust.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-c.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scala.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-glsl.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-lua.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-coffeescript.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-jade.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-keyman.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-crystal.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rest.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-json.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-roboconf.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-twig.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-dart.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-vim.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-handlebars.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-cpp.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-fsharp.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sas.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-brainfuck.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haxe.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-julia.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-jade.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-python.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nim.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-typescript.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-csharp.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-brainfuck.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-asciidoc.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-groovy.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-applescript.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-elixir.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-diff.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scheme.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-parser.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-qore.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-yaml.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-j.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-mel.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-css-extras.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-erlang.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-icon.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-actionscript.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-cpp.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-makefile.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-q.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nsis.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-mizar.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-wiki.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-csharp.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-julia.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-coffeescript.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sql.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-php-extras.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-basic.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-swift.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haxe.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-apacheconf.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-javascript.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-markup.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-keyman.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sql.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-php-extras.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scheme.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-python.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-autoit.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-gherkin.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-java.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-parigp.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-autohotkey.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ruby.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nginx.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-core.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-fortran.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nasm.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ini.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-protobuf.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-jsx.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-markdown.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nix.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nsis.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-oz.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-less.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-abap.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-puppet.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nix.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-pascal.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-latex.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-verilog.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-aspnet.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-go.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-glsl.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-inform7.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-yaml.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-matlab.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-lua.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-mizar.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-c.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-fsharp.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haml.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rust.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-icon.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-fortran.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-qore.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-batch.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-eiffel.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-vim.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-j.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-eiffel.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-elixir.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-erlang.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-matlab.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-tcl.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ruby.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-d.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-swift.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-wiki.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-lolcode.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-latex.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-prolog.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-php.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scss.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-vhdl.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-lolcode.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-prolog.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-apacheconf.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-core.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-diff.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-json.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ini.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/dumped.trie"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-r.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-markup.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-apl.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-markdown.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-asciidoc.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ocaml.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-javascript.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-autohotkey.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-less.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-pure.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-groovy.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bison.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sass.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-css.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haml.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-handlebars.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-textile.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-parser.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-docker.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-monkey.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-http.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-git.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sas.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-go.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-mel.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rest.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-clike.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-d.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haskell.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-git.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-java.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rip.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-perl.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-typescript.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-actionscript.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-autoit.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rip.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-twig.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-monkey.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-processing.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scala.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-smalltalk.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bash.min.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-r.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-css.js"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.woff"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.woff2"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.svg"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.ttf"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.eot"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/dumped.trie"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/images/home.svg"},
+ {"type": "file", "file": "usr/share/doc/foobar/html/assets/images/dumped.trie"}
+ ]
+}
diff --git a/test cases/frameworks/6 gettext/installed_files.txt b/test cases/frameworks/6 gettext/installed_files.txt
deleted file mode 100644
index f32b282..0000000
--- a/test cases/frameworks/6 gettext/installed_files.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-usr/bin/intlprog?exe
-usr/share/locale/de/LC_MESSAGES/intltest.mo
-usr/share/locale/fi/LC_MESSAGES/intltest.mo
-usr/share/locale/ru/LC_MESSAGES/intltest.mo
-usr/share/applications/something.desktop
-usr/share/applications/test.desktop
-usr/share/applications/test.plugin
-usr/share/applications/test2.desktop
-usr/share/applications/test3.desktop
-usr/share/applications/test4.desktop
diff --git a/test cases/frameworks/6 gettext/test.json b/test cases/frameworks/6 gettext/test.json
new file mode 100644
index 0000000..1ed2dbf
--- /dev/null
+++ b/test cases/frameworks/6 gettext/test.json
@@ -0,0 +1,14 @@
+{
+ "installed": [
+ {"type": "exe", "file": "usr/bin/intlprog"},
+ {"type": "file", "file": "usr/share/locale/de/LC_MESSAGES/intltest.mo"},
+ {"type": "file", "file": "usr/share/locale/fi/LC_MESSAGES/intltest.mo"},
+ {"type": "file", "file": "usr/share/locale/ru/LC_MESSAGES/intltest.mo"},
+ {"type": "file", "file": "usr/share/applications/something.desktop"},
+ {"type": "file", "file": "usr/share/applications/test.desktop"},
+ {"type": "file", "file": "usr/share/applications/test.plugin"},
+ {"type": "file", "file": "usr/share/applications/test2.desktop"},
+ {"type": "file", "file": "usr/share/applications/test3.desktop"},
+ {"type": "file", "file": "usr/share/applications/test4.desktop"}
+ ]
+}
diff --git a/test cases/frameworks/7 gnome/installed_files.txt b/test cases/frameworks/7 gnome/installed_files.txt
deleted file mode 100644
index 9c1d496..0000000
--- a/test cases/frameworks/7 gnome/installed_files.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-usr/include/enums.h
-usr/include/enums2.h
-usr/include/enums3.h
-usr/include/enums5.h
-usr/include/marshaller.h
-usr/lib/?libgir_lib.so
-?cygwin:usr/lib/libgir_lib.dll.a
-usr/lib/?libgir_lib2.so
-?cygwin:usr/lib/libgir_lib2.dll.a
-usr/lib/?libdep1lib.so
-?cygwin:usr/lib/libdep1lib.dll.a
-usr/lib/?libdep2lib.so
-?cygwin:usr/lib/libdep2lib.dll.a
-usr/lib/girepository-1.0/Meson-1.0.typelib
-usr/lib/girepository-1.0/MesonDep1-1.0.typelib
-usr/lib/girepository-1.0/MesonDep2-1.0.typelib
-usr/share/gir-1.0/Meson-1.0.gir
-usr/share/gir-1.0/MesonDep1-1.0.gir
-usr/share/gir-1.0/MesonDep2-1.0.gir
-usr/share/glib-2.0/schemas/com.github.meson.gschema.xml
-usr/share/simple-resources.gresource
-usr/include/enums6.h
-usr/include/simple-resources.h
-usr/include/generated-gdbus.h
diff --git a/test cases/frameworks/7 gnome/test.json b/test cases/frameworks/7 gnome/test.json
new file mode 100644
index 0000000..e69c9f0
--- /dev/null
+++ b/test cases/frameworks/7 gnome/test.json
@@ -0,0 +1,28 @@
+{
+ "installed": [
+ {"type": "file", "file": "usr/include/enums.h"},
+ {"type": "file", "file": "usr/include/enums2.h"},
+ {"type": "file", "file": "usr/include/enums3.h"},
+ {"type": "file", "file": "usr/include/enums5.h"},
+ {"type": "file", "file": "usr/include/marshaller.h"},
+ {"type": "expr", "file": "usr/lib/?libgir_lib.so"},
+ {"type": "file", "platform": "cygwin", "file": "usr/lib/libgir_lib.dll.a"},
+ {"type": "expr", "file": "usr/lib/?libgir_lib2.so"},
+ {"type": "file", "platform": "cygwin", "file": "usr/lib/libgir_lib2.dll.a"},
+ {"type": "expr", "file": "usr/lib/?libdep1lib.so"},
+ {"type": "file", "platform": "cygwin", "file": "usr/lib/libdep1lib.dll.a"},
+ {"type": "expr", "file": "usr/lib/?libdep2lib.so"},
+ {"type": "file", "platform": "cygwin", "file": "usr/lib/libdep2lib.dll.a"},
+ {"type": "file", "file": "usr/lib/girepository-1.0/Meson-1.0.typelib"},
+ {"type": "file", "file": "usr/lib/girepository-1.0/MesonDep1-1.0.typelib"},
+ {"type": "file", "file": "usr/lib/girepository-1.0/MesonDep2-1.0.typelib"},
+ {"type": "file", "file": "usr/share/gir-1.0/Meson-1.0.gir"},
+ {"type": "file", "file": "usr/share/gir-1.0/MesonDep1-1.0.gir"},
+ {"type": "file", "file": "usr/share/gir-1.0/MesonDep2-1.0.gir"},
+ {"type": "file", "file": "usr/share/glib-2.0/schemas/com.github.meson.gschema.xml"},
+ {"type": "file", "file": "usr/share/simple-resources.gresource"},
+ {"type": "file", "file": "usr/include/enums6.h"},
+ {"type": "file", "file": "usr/include/simple-resources.h"},
+ {"type": "file", "file": "usr/include/generated-gdbus.h"}
+ ]
+}