cgit

commit d5a43b429a4248a02e3a403f76fff0cbae92ef32

Author: John Keeping <john@keeping.me.uk>

t0107-snapshot: add tests for ZIP archives

Signed-off-by: John Keeping <john@keeping.me.uk>

 tests/t0107-snapshot.sh | 39 +++++++++++++++++++++++++++++++++++++--


diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh
index d23bf97bd539820208f611dbdc4964f9266d913c..132d2e9551c1c635efce60b3c902db42d890eb69 100755
--- a/tests/t0107-snapshot.sh
+++ b/tests/t0107-snapshot.sh
@@ -20,8 +20,8 @@ run_test 'strip off the header lines' '
 	tail -n +6 trash/tmp > trash/master.tar.gz
 '
 
-run_test '
-	verify gzip format' 'gunzip --test trash/master.tar.gz
+run_test 'verify gzip format' '
+	gunzip --test trash/master.tar.gz
 '
 
 run_test 'untar' '
@@ -37,6 +37,41 @@
 run_test 'verify untarred file-5' '
 	grep "^5$" trash/master/file-5 &&
 	test $(cat trash/master/file-5 | wc -l) = 1
+'
+
+run_test 'get foo/snapshot/master.zip' '
+	cgit_url "foo/snapshot/master.zip" >trash/tmp
+'
+
+run_test 'check HTML headers (zip)' '
+	head -n 1 trash/tmp |
+	grep "Content-Type: application/x-zip" &&
+
+	head -n 2 trash/tmp |
+	grep "Content-Disposition: inline; filename=.master.zip."
+'
+
+run_test 'strip off the header lines (zip)' '
+	tail -n +6 trash/tmp >trash/master.zip
+'
+
+run_test 'verify zip format' '
+	unzip -t trash/master.zip
+'
+
+run_test 'unzip' '
+	rm -rf trash/master &&
+	unzip trash/master.zip -d trash
+'
+
+run_test 'count files (zip)' '
+	c=$(ls -1 trash/master/ | wc -l) &&
+	test $c = 5
+'
+
+run_test 'verify unzipped file-5' '
+	 grep "^5$" trash/master/file-5 &&
+	 test $(cat trash/master/file-5 | wc -l) = 1
 '
 
 tests_done