From c4b45de33458f66f5a768530d738f6c28e56cf49 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 2 Dec 2008 11:31:34 +0100 Subject: return 404 if snapshot is not found Signed-off-by: Lars Hjemli --- ui-snapshot.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ui-snapshot.c b/ui-snapshot.c index 6f09151..f98f5d7 100644 --- a/ui-snapshot.c +++ b/ui-snapshot.c @@ -175,10 +175,12 @@ void cgit_print_snapshot(const char *head, const char *hex, if (!hex && dwim) { hex = get_ref_from_filename(ctx.repo->url, filename, f); - if (hex != NULL) { - prefix = xstrdup(filename); - prefix[strlen(filename) - strlen(f->suffix)] = '\0'; + if (hex == NULL) { + html_status(404, "Not found", 0); + return; } + prefix = xstrdup(filename); + prefix[strlen(filename) - strlen(f->suffix)] = '\0'; } if (!hex) -- cgit v1.2.3-57-g22cb From 7bbc27458532c16b9fdbe2b54fad4db04fbd1186 Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Sun, 28 Dec 2008 10:52:35 +0100 Subject: tests/t0107-snapshot.sh: make testscript match updated snapshot behavior Since cgit now returns a 404 error when the snapshot filename cannot be resolved to a commit object, the testscript needs to request a valid snapshot name. Also, the script assumed that the toplevel directory in the snapshot would get the name of the repository but it's now named similar to the requested snapshot. Signed-off-by: Lars Hjemli --- tests/t0107-snapshot.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh index d97c465..5f1b862 100755 --- a/tests/t0107-snapshot.sh +++ b/tests/t0107-snapshot.sh @@ -4,8 +4,8 @@ prepare_tests "Verify snapshot" -run_test 'get foo/snapshot/test.tar.gz' ' - cgit_url "foo/snapshot/test.tar.gz" >trash/tmp +run_test 'get foo/snapshot/master.tar.gz' ' + cgit_url "foo/snapshot/master.tar.gz" >trash/tmp ' run_test 'check html headers' ' @@ -13,27 +13,27 @@ run_test 'check html headers' ' grep -e "Content-Type: application/x-tar" && head -n 2 trash/tmp | - grep -e "Content-Disposition: inline; filename=.test.tar.gz." + grep -e "Content-Disposition: inline; filename=.master.tar.gz." ' run_test 'strip off the header lines' ' - tail -n +6 trash/tmp > trash/test.tar.gz + tail -n +6 trash/tmp > trash/master.tar.gz ' -run_test 'verify gzip format' 'gunzip --test trash/test.tar.gz' +run_test 'verify gzip format' 'gunzip --test trash/master.tar.gz' run_test 'untar' ' - rm -rf trash/foo && - tar -xf trash/test.tar.gz -C trash + rm -rf trash/master && + tar -xf trash/master.tar.gz -C trash ' run_test 'count files' ' - c=$(ls -1 trash/foo/ | wc -l) && + c=$(ls -1 trash/master/ | wc -l) && test $c = 5 ' run_test 'verify untarred file-5' ' - grep -e "^5$" trash/foo/file-5 && - test $(cat trash/foo/file-5 | wc -l) = 1 + grep -e "^5$" trash/master/file-5 && + test $(cat trash/master/file-5 | wc -l) = 1 ' tests_done -- cgit v1.2.3-57-g22cb