X-Git-Url: https://git.cameronkatri.com/cgit.git/blobdiff_plain/d6174b7aab476c2b6a86e59d98cf978d603045f4..48f175083ae9ee03aa5ed7cddfbf74edf6d75774:/tests/t0107-snapshot.sh diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh index 8ab4912..6cf7aaa 100755 --- a/tests/t0107-snapshot.sh +++ b/tests/t0107-snapshot.sh @@ -1,39 +1,82 @@ #!/bin/sh +test_description='Verify snapshot' . ./setup.sh -prepare_tests "Verify snapshot" +test_expect_success 'get foo/snapshot/master.tar.gz' ' + cgit_url "foo/snapshot/master.tar.gz" >tmp +' + +test_expect_success 'check html headers' ' + head -n 1 tmp | + grep "Content-Type: application/x-gzip" && -run_test 'get foo/snapshot/master.tar.gz' ' - cgit_url "foo/snapshot/master.tar.gz" >trash/tmp + head -n 2 tmp | + grep "Content-Disposition: inline; filename=.master.tar.gz." ' -run_test 'check html headers' ' - head -n 1 trash/tmp | - grep -e "Content-Type: application/x-gzip" && +test_expect_success 'strip off the header lines' ' + strip_headers master.tar.gz +' + +test_expect_success 'verify gzip format' ' + gunzip --test master.tar.gz +' + +test_expect_success 'untar' ' + rm -rf master && + tar -xzf master.tar.gz +' + +test_expect_success 'count files' ' + ls master/ >output && + test_line_count = 5 output +' - head -n 2 trash/tmp | - grep -e "Content-Disposition: inline; filename=.master.tar.gz." +test_expect_success 'verify untarred file-5' ' + grep "^5$" master/file-5 && + test_line_count = 1 master/file-5 ' -run_test 'strip off the header lines' ' - tail -n +6 trash/tmp > trash/master.tar.gz +test_expect_success 'get foo/snapshot/master.zip' ' + cgit_url "foo/snapshot/master.zip" >tmp +' + +test_expect_success 'check HTML headers (zip)' ' + head -n 1 tmp | + grep "Content-Type: application/x-zip" && + + head -n 2 tmp | + grep "Content-Disposition: inline; filename=.master.zip." +' + +test_expect_success 'strip off the header lines (zip)' ' + strip_headers master.zip +' + +if test -n "$(which unzip 2>/dev/null)"; then + test_set_prereq UNZIP +else + say 'Skipping ZIP validation tests: unzip not found' +fi + +test_expect_success UNZIP 'verify zip format' ' + unzip -t master.zip ' -run_test 'verify gzip format' 'gunzip --test trash/master.tar.gz' -run_test 'untar' ' - rm -rf trash/master && - tar -xf trash/master.tar.gz -C trash +test_expect_success UNZIP 'unzip' ' + rm -rf master && + unzip master.zip ' -run_test 'count files' ' - c=$(ls -1 trash/master/ | wc -l) && - test $c = 5 +test_expect_success UNZIP 'count files (zip)' ' + ls master/ >output && + test_line_count = 5 output ' -run_test 'verify untarred file-5' ' - grep -e "^5$" trash/master/file-5 && - test $(cat trash/master/file-5 | wc -l) = 1 +test_expect_success UNZIP 'verify unzipped file-5' ' + grep "^5$" master/file-5 && + test_line_count = 1 master/file-5 ' -tests_done +test_done