about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--Makefile7
-rwxr-xr-xtests/setup.sh130
-rwxr-xr-xtests/t0001-validate-git-versions.sh28
-rwxr-xr-xtests/t0010-validate-html.sh31
-rwxr-xr-xtests/t0020-validate-cache.sh32
-rwxr-xr-xtests/t0101-index.sh25
-rwxr-xr-xtests/t0102-summary.sh35
-rwxr-xr-xtests/t0103-log.sh33
-rwxr-xr-xtests/t0104-tree.sh33
-rwxr-xr-xtests/t0105-commit.sh41
-rwxr-xr-xtests/t0106-diff.sh21
-rwxr-xr-xtests/t0107-snapshot.sh77
-rwxr-xr-xtests/t0108-patch.sh37
13 files changed, 239 insertions, 291 deletions
diff --git a/Makefile b/Makefile index 59edab0..ed29b3a 100644 --- a/Makefile +++ b/Makefile
@@ -66,7 +66,10 @@ all:: cgit
66cgit: 66cgit:
67 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) -f ../cgit.mk ../cgit NO_CURL=1 67 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) -f ../cgit.mk ../cgit NO_CURL=1
68 68
69test: all 69git:
70 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) NO_CURL=1
71
72test: all git
70 $(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all 73 $(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all
71 74
72install: all 75install: all
@@ -145,7 +148,7 @@ get-git:
145tags: 148tags:
146 $(QUIET_TAGS)find . -name '*.[ch]' | xargs ctags 149 $(QUIET_TAGS)find . -name '*.[ch]' | xargs ctags
147 150
148.PHONY: all cgit get-git 151.PHONY: all cgit git get-git
149.PHONY: clean clean-doc cleanall 152.PHONY: clean clean-doc cleanall
150.PHONY: doc doc-html doc-man doc-pdf 153.PHONY: doc doc-html doc-man doc-pdf
151.PHONY: install install-doc install-html install-man install-pdf 154.PHONY: install install-doc install-html install-man install-pdf
diff --git a/tests/setup.sh b/tests/setup.sh index e3c6c17..81e7220 100755 --- a/tests/setup.sh +++ b/tests/setup.sh
@@ -15,46 +15,48 @@
15# run_test 'repo index' 'cgit_url "/" | tidy -e' 15# run_test 'repo index' 'cgit_url "/" | tidy -e'
16# run_test 'repo summary' 'cgit_url "/foo" | tidy -e' 16# run_test 'repo summary' 'cgit_url "/foo" | tidy -e'
17 17
18unset CDPATH 18: ${TEST_DIRECTORY=$(pwd)/../git/t}
19TEST_NO_CREATE_REPO=YesPlease
20. "$TEST_DIRECTORY"/test-lib.sh
21
22# Prepend the directory containing cgit to PATH.
23PATH="$(pwd)/../..:$PATH"
19 24
20mkrepo() { 25mkrepo() {
21 name=$1 26 name=$1
22 count=$2 27 count=$2
23 dir=$PWD 28 test_create_repo "$name"
24 test -d "$name" && return 29 (
25 printf "Creating testrepo %s\n" "$name" 30 cd "$name"
26 mkdir -p "$name" 31 n=1
27 cd "$name" 32 while test $n -le $count
28 git init 33 do
29 n=1 34 echo $n >file-$n
30 while test $n -le $count 35 git add file-$n
31 do 36 git commit -m "commit $n"
32 echo $n >file-$n 37 n=$(expr $n + 1)
33 git add file-$n 38 done
34 git commit -m "commit $n" 39 if test "$3" = "testplus"
35 n=$(expr $n + 1) 40 then
36 done 41 echo "hello" >a+b
37 if test "$3" = "testplus" 42 git add a+b
38 then 43 git commit -m "add a+b"
39 echo "hello" >a+b 44 git branch "1+2"
40 git add a+b 45 fi
41 git commit -m "add a+b" 46 )
42 git branch "1+2"
43 fi
44 cd "$dir"
45} 47}
46 48
47setup_repos() 49setup_repos()
48{ 50{
49 rm -rf trash/cache 51 rm -rf cache
50 mkdir -p trash/cache 52 mkdir -p cache
51 mkrepo trash/repos/foo 5 >/dev/null 53 mkrepo repos/foo 5 >/dev/null
52 mkrepo trash/repos/bar 50 >/dev/null 54 mkrepo repos/bar 50 >/dev/null
53 mkrepo trash/repos/foo+bar 10 testplus >/dev/null 55 mkrepo repos/foo+bar 10 testplus >/dev/null
54 mkrepo "trash/repos/with space" 2 >/dev/null 56 mkrepo "repos/with space" 2 >/dev/null
55 cat >trash/cgitrc <<EOF 57 cat >cgitrc <<EOF
56virtual-root=/ 58virtual-root=/
57cache-root=$PWD/trash/cache 59cache-root=$PWD/cache
58 60
59cache-size=1021 61cache-size=1021
60snapshots=tar.gz tar.bz zip 62snapshots=tar.gz tar.bz zip
@@ -66,83 +68,33 @@ summary-tags=5
66clone-url=git://example.org/\$CGIT_REPO_URL.git 68clone-url=git://example.org/\$CGIT_REPO_URL.git
67 69
68repo.url=foo 70repo.url=foo
69repo.path=$PWD/trash/repos/foo/.git 71repo.path=$PWD/repos/foo/.git
70# Do not specify a description for this repo, as it then will be assigned 72# Do not specify a description for this repo, as it then will be assigned
71# the constant value "[no description]" (which actually used to cause a 73# the constant value "[no description]" (which actually used to cause a
72# segfault). 74# segfault).
73 75
74repo.url=bar 76repo.url=bar
75repo.path=$PWD/trash/repos/bar/.git 77repo.path=$PWD/repos/bar/.git
76repo.desc=the bar repo 78repo.desc=the bar repo
77 79
78repo.url=foo+bar 80repo.url=foo+bar
79repo.path=$PWD/trash/repos/foo+bar/.git 81repo.path=$PWD/repos/foo+bar/.git
80repo.desc=the foo+bar repo 82repo.desc=the foo+bar repo
81 83
82repo.url=with space 84repo.url=with space
83repo.path=$PWD/trash/repos/with space/.git 85repo.path=$PWD/repos/with space/.git
84repo.desc=spaced repo 86repo.desc=spaced repo
85EOF 87EOF
86} 88}
87 89
88prepare_tests()
89{
90 setup_repos
91 rm -f test-output.log 2>/dev/null
92 test_count=0
93 test_failed=0
94 echo "[$0]" "$@" >test-output.log
95 echo "$@" "($0)"
96}
97
98tests_done()
99{
100 printf "\n"
101 if test $test_failed -gt 0
102 then
103 printf "test: *** %s failure(s), logfile=%s\n" \
104 $test_failed "$(pwd)/test-output.log"
105 false
106 fi
107}
108
109run_test()
110{
111 bug=0
112 if test "$1" = "BUG"
113 then
114 bug=1
115 shift
116 fi
117 desc=$1
118 script=$2
119 test_count=$(expr $test_count + 1)
120 printf "\ntest %d: name='%s'\n" $test_count "$desc" >>test-output.log
121 printf "test %d: eval='%s'\n" $test_count "$2" >>test-output.log
122 eval "$2" >>test-output.log 2>>test-output.log
123 res=$?
124 printf "test %d: exitcode=%d\n" $test_count $res >>test-output.log
125 if test $res = 0 -a $bug = 0
126 then
127 printf " %2d) %-60s [ok]\n" $test_count "$desc"
128 elif test $res = 0 -a $bug = 1
129 then
130 printf " %2d) %-60s [BUG FIXED]\n" $test_count "$desc"
131 elif test $bug = 1
132 then
133 printf " %2d) %-60s [KNOWN BUG]\n" $test_count "$desc"
134 else
135 test_failed=$(expr $test_failed + 1)
136 printf " %2d) %-60s [failed]\n" $test_count "$desc"
137 fi
138}
139
140cgit_query() 90cgit_query()
141{ 91{
142 CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="$1" "$PWD/../cgit" 92 CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="$1" cgit
143} 93}
144 94
145cgit_url() 95cgit_url()
146{ 96{
147 CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="url=$1" "$PWD/../cgit" 97 CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="url=$1" cgit
148} 98}
99
100test -z "$CGIT_TEST_NO_CREATE_REPOS" && setup_repos
diff --git a/tests/t0001-validate-git-versions.sh b/tests/t0001-validate-git-versions.sh index 3378358..754046e 100755 --- a/tests/t0001-validate-git-versions.sh +++ b/tests/t0001-validate-git-versions.sh
@@ -1,36 +1,36 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Check Git version is correct'
4CGIT_TEST_NO_CREATE_REPOS=YesPlease
3. ./setup.sh 5. ./setup.sh
4 6
5prepare_tests 'Check Git version is correct' 7test_expect_success 'extract Git version from Makefile' '
6
7run_test 'extract Git version from Makefile' '
8 sed -n -e "/^GIT_VER[ ]*=/ { 8 sed -n -e "/^GIT_VER[ ]*=/ {
9 s/^GIT_VER[ ]*=[ ]*// 9 s/^GIT_VER[ ]*=[ ]*//
10 p 10 p
11 }" ../Makefile >trash/makefile_version 11 }" ../../Makefile >makefile_version
12' 12'
13 13
14run_test 'test Git version matches Makefile' ' 14test_expect_success 'test Git version matches Makefile' '
15 ( cat ../git/GIT-VERSION-FILE || echo "No GIT-VERSION-FILE" ) | 15 ( cat ../../git/GIT-VERSION-FILE || echo "No GIT-VERSION-FILE" ) |
16 sed -e "s/GIT_VERSION[ ]*=[ ]*//" >trash/git_version && 16 sed -e "s/GIT_VERSION[ ]*=[ ]*//" >git_version &&
17 diff -u trash/git_version trash/makefile_version 17 test_cmp git_version makefile_version
18' 18'
19 19
20run_test 'test submodule version matches Makefile' ' 20test_expect_success 'test submodule version matches Makefile' '
21 if ! test -e ../git/.git 21 if ! test -e ../../git/.git
22 then 22 then
23 echo "git/ is not a Git repository" >&2 23 echo "git/ is not a Git repository" >&2
24 else 24 else
25 ( 25 (
26 cd .. && 26 cd ../.. &&
27 sm_sha1=$(git ls-files --stage -- git | 27 sm_sha1=$(git ls-files --stage -- git |
28 sed -e "s/^[0-9]* \\([0-9a-f]*\\) [0-9] .*$/\\1/") && 28 sed -e "s/^[0-9]* \\([0-9a-f]*\\) [0-9] .*$/\\1/") &&
29 cd git && 29 cd git &&
30 git describe --match "v[0-9]*" $sm_sha1 30 git describe --match "v[0-9]*" $sm_sha1
31 ) | sed -e "s/^v//" >trash/sm_version && 31 ) | sed -e "s/^v//" >sm_version &&
32 diff -u trash/sm_version trash/makefile_version 32 test_cmp sm_version makefile_version
33 fi 33 fi
34' 34'
35 35
36tests_done 36test_done
diff --git a/tests/t0010-validate-html.sh b/tests/t0010-validate-html.sh index 3fe4800..5bd0a25 100755 --- a/tests/t0010-validate-html.sh +++ b/tests/t0010-validate-html.sh
@@ -1,5 +1,6 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Validate html with tidy'
3. ./setup.sh 4. ./setup.sh
4 5
5 6
@@ -7,9 +8,9 @@ test_url()
7{ 8{
8 tidy_opt="-eq" 9 tidy_opt="-eq"
9 test -z "$NO_TIDY_WARNINGS" || tidy_opt+=" --show-warnings no" 10 test -z "$NO_TIDY_WARNINGS" || tidy_opt+=" --show-warnings no"
10 cgit_url "$1" >trash/tidy-$test_count || return 11 cgit_url "$1" >tidy-$test_count || return
11 sed -ie "1,4d" trash/tidy-$test_count || return 12 sed -ie "1,4d" tidy-$test_count || return
12 "$tidy" $tidy_opt trash/tidy-$test_count 13 "$tidy" $tidy_opt tidy-$test_count
13 rc=$? 14 rc=$?
14 15
15 # tidy returns with exitcode 1 on warnings, 2 on error 16 # tidy returns with exitcode 1 on warnings, 2 on error
@@ -21,21 +22,19 @@ test_url()
21 fi 22 fi
22} 23}
23 24
24prepare_tests 'Validate html with tidy' 25tidy=`which tidy 2>/dev/null`
25
26tidy=`which tidy`
27test -n "$tidy" || { 26test -n "$tidy" || {
28 echo "Skipping tests: tidy not found" 27 skip_all='Skipping html validation tests: tidy not found'
29 tests_done 28 test_done
30 exit 29 exit
31} 30}
32 31
33run_test 'index page' 'test_url ""' 32test_expect_success 'index page' 'test_url ""'
34run_test 'foo' 'test_url "foo"' 33test_expect_success 'foo' 'test_url "foo"'
35run_test 'foo/log' 'test_url "foo/log"' 34test_expect_success 'foo/log' 'test_url "foo/log"'
36run_test 'foo/tree' 'test_url "foo/tree"' 35test_expect_success 'foo/tree' 'test_url "foo/tree"'
37run_test 'foo/tree/file-1' 'test_url "foo/tree/file-1"' 36test_expect_success 'foo/tree/file-1' 'test_url "foo/tree/file-1"'
38run_test 'foo/commit' 'test_url "foo/commit"' 37test_expect_success 'foo/commit' 'test_url "foo/commit"'
39run_test 'foo/diff' 'test_url "foo/diff"' 38test_expect_success 'foo/diff' 'test_url "foo/diff"'
40 39
41tests_done 40test_done
diff --git a/tests/t0020-validate-cache.sh b/tests/t0020-validate-cache.sh index 53ec2eb..1910b47 100755 --- a/tests/t0020-validate-cache.sh +++ b/tests/t0020-validate-cache.sh
@@ -1,13 +1,12 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Validate cache'
3. ./setup.sh 4. ./setup.sh
4 5
5prepare_tests 'Validate cache' 6test_expect_success 'verify cache-size=0' '
6 7
7run_test 'verify cache-size=0' ' 8 rm -f cache/* &&
8 9 sed -i -e "s/cache-size=1021$/cache-size=0/" cgitrc &&
9 rm -f trash/cache/* &&
10 sed -i -e "s/cache-size=1021$/cache-size=0/" trash/cgitrc &&
11 cgit_url "" && 10 cgit_url "" &&
12 cgit_url "foo" && 11 cgit_url "foo" &&
13 cgit_url "foo/refs" && 12 cgit_url "foo/refs" &&
@@ -21,13 +20,14 @@ run_test 'verify cache-size=0' '
21 cgit_url "bar/log" && 20 cgit_url "bar/log" &&
22 cgit_url "bar/diff" && 21 cgit_url "bar/diff" &&
23 cgit_url "bar/patch" && 22 cgit_url "bar/patch" &&
24 test 0 -eq $(ls trash/cache | wc -l) 23 ls cache >output &&
24 test_line_count = 0 output
25' 25'
26 26
27run_test 'verify cache-size=1' ' 27test_expect_success 'verify cache-size=1' '
28 28
29 rm -f trash/cache/* && 29 rm -f cache/* &&
30 sed -i -e "s/cache-size=0$/cache-size=1/" trash/cgitrc && 30 sed -i -e "s/cache-size=0$/cache-size=1/" cgitrc &&
31 cgit_url "" && 31 cgit_url "" &&
32 cgit_url "foo" && 32 cgit_url "foo" &&
33 cgit_url "foo/refs" && 33 cgit_url "foo/refs" &&
@@ -41,13 +41,14 @@ run_test 'verify cache-size=1' '
41 cgit_url "bar/log" && 41 cgit_url "bar/log" &&
42 cgit_url "bar/diff" && 42 cgit_url "bar/diff" &&
43 cgit_url "bar/patch" && 43 cgit_url "bar/patch" &&
44 test 1 -eq $(ls trash/cache | wc -l) 44 ls cache >output &&
45 test_line_count = 1 output
45' 46'
46 47
47run_test 'verify cache-size=1021' ' 48test_expect_success 'verify cache-size=1021' '
48 49
49 rm -f trash/cache/* && 50 rm -f cache/* &&
50 sed -i -e "s/cache-size=1$/cache-size=1021/" trash/cgitrc && 51 sed -i -e "s/cache-size=1$/cache-size=1021/" cgitrc &&
51 cgit_url "" && 52 cgit_url "" &&
52 cgit_url "foo" && 53 cgit_url "foo" &&
53 cgit_url "foo/refs" && 54 cgit_url "foo/refs" &&
@@ -61,7 +62,8 @@ run_test 'verify cache-size=1021' '
61 cgit_url "bar/log" && 62 cgit_url "bar/log" &&
62 cgit_url "bar/diff" && 63 cgit_url "bar/diff" &&
63 cgit_url "bar/patch" && 64 cgit_url "bar/patch" &&
64 test 13 -eq $(ls trash/cache | wc -l) 65 ls cache >output &&
66 test_line_count = 13 output
65' 67'
66 68
67tests_done 69test_done
diff --git a/tests/t0101-index.sh b/tests/t0101-index.sh index ab63aca..82ef9b0 100755 --- a/tests/t0101-index.sh +++ b/tests/t0101-index.sh
@@ -1,18 +1,17 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Check content on index page'
3. ./setup.sh 4. ./setup.sh
4 5
5prepare_tests "Check content on index page" 6test_expect_success 'generate index page' 'cgit_url "" >tmp'
7test_expect_success 'find foo repo' 'grep "foo" tmp'
8test_expect_success 'find foo description' 'grep "\[no description\]" tmp'
9test_expect_success 'find bar repo' 'grep "bar" tmp'
10test_expect_success 'find bar description' 'grep "the bar repo" tmp'
11test_expect_success 'find foo+bar repo' 'grep ">foo+bar<" tmp'
12test_expect_success 'verify foo+bar link' 'grep "/foo+bar/" tmp'
13test_expect_success 'verify "with%20space" link' 'grep "/with%20space/" tmp'
14test_expect_success 'no tree-link' '! grep "foo/tree" tmp'
15test_expect_success 'no log-link' '! grep "foo/log" tmp'
6 16
7run_test 'generate index page' 'cgit_url "" >trash/tmp' 17test_done
8run_test 'find foo repo' 'grep "foo" trash/tmp'
9run_test 'find foo description' 'grep "\[no description\]" trash/tmp'
10run_test 'find bar repo' 'grep "bar" trash/tmp'
11run_test 'find bar description' 'grep "the bar repo" trash/tmp'
12run_test 'find foo+bar repo' 'grep ">foo+bar<" trash/tmp'
13run_test 'verify foo+bar link' 'grep "/foo+bar/" trash/tmp'
14run_test 'verify "with%20space" link' 'grep "/with%20space/" trash/tmp'
15run_test 'no tree-link' '! grep "foo/tree" trash/tmp'
16run_test 'no log-link' '! grep "foo/log" trash/tmp'
17
18tests_done
diff --git a/tests/t0102-summary.sh b/tests/t0102-summary.sh index f778cb4..b8864cb 100755 --- a/tests/t0102-summary.sh +++ b/tests/t0102-summary.sh
@@ -1,26 +1,25 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Check content on summary page'
3. ./setup.sh 4. ./setup.sh
4 5
5prepare_tests "Check content on summary page" 6test_expect_success 'generate foo summary' 'cgit_url "foo" >tmp'
6 7test_expect_success 'find commit 1' 'grep "commit 1" tmp'
7run_test 'generate foo summary' 'cgit_url "foo" >trash/tmp' 8test_expect_success 'find commit 5' 'grep "commit 5" tmp'
8run_test 'find commit 1' 'grep "commit 1" trash/tmp' 9test_expect_success 'find branch master' 'grep "master" tmp'
9run_test 'find commit 5' 'grep "commit 5" trash/tmp' 10test_expect_success 'no tags' '! grep "tags" tmp'
10run_test 'find branch master' 'grep "master" trash/tmp' 11test_expect_success 'clone-url expanded correctly' '
11run_test 'no tags' '! grep "tags" trash/tmp' 12 grep "git://example.org/foo.git" tmp
12run_test 'clone-url expanded correctly' '
13 grep "git://example.org/foo.git" trash/tmp
14' 13'
15 14
16run_test 'generate bar summary' 'cgit_url "bar" >trash/tmp' 15test_expect_success 'generate bar summary' 'cgit_url "bar" >tmp'
17run_test 'no commit 45' '! grep "commit 45" trash/tmp' 16test_expect_success 'no commit 45' '! grep "commit 45" tmp'
18run_test 'find commit 46' 'grep "commit 46" trash/tmp' 17test_expect_success 'find commit 46' 'grep "commit 46" tmp'
19run_test 'find commit 50' 'grep "commit 50" trash/tmp' 18test_expect_success 'find commit 50' 'grep "commit 50" tmp'
20run_test 'find branch master' 'grep "master" trash/tmp' 19test_expect_success 'find branch master' 'grep "master" tmp'
21run_test 'no tags' '! grep "tags" trash/tmp' 20test_expect_success 'no tags' '! grep "tags" tmp'
22run_test 'clone-url expanded correctly' ' 21test_expect_success 'clone-url expanded correctly' '
23 grep "git://example.org/bar.git" trash/tmp 22 grep "git://example.org/bar.git" tmp
24' 23'
25 24
26tests_done 25test_done
diff --git a/tests/t0103-log.sh b/tests/t0103-log.sh index 67fcba0..bdf1435 100755 --- a/tests/t0103-log.sh +++ b/tests/t0103-log.sh
@@ -1,25 +1,24 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Check content on log page'
3. ./setup.sh 4. ./setup.sh
4 5
5prepare_tests "Check content on log page" 6test_expect_success 'generate foo/log' 'cgit_url "foo/log" >tmp'
7test_expect_success 'find commit 1' 'grep "commit 1" tmp'
8test_expect_success 'find commit 5' 'grep "commit 5" tmp'
6 9
7run_test 'generate foo/log' 'cgit_url "foo/log" >trash/tmp' 10test_expect_success 'generate bar/log' 'cgit_url "bar/log" >tmp'
8run_test 'find commit 1' 'grep "commit 1" trash/tmp' 11test_expect_success 'find commit 1' 'grep "commit 1" tmp'
9run_test 'find commit 5' 'grep "commit 5" trash/tmp' 12test_expect_success 'find commit 50' 'grep "commit 50" tmp'
10 13
11run_test 'generate bar/log' 'cgit_url "bar/log" >trash/tmp' 14test_expect_success 'generate "with%20space/log?qt=grep&q=commit+1"' '
12run_test 'find commit 1' 'grep "commit 1" trash/tmp' 15 cgit_url "with+space/log&qt=grep&q=commit+1" >tmp
13run_test 'find commit 50' 'grep "commit 50" trash/tmp'
14
15run_test 'generate "with%20space/log?qt=grep&q=commit+1"' '
16 cgit_url "with+space/log&qt=grep&q=commit+1" >trash/tmp
17' 16'
18run_test 'find commit 1' 'grep "commit 1" trash/tmp' 17test_expect_success 'find commit 1' 'grep "commit 1" tmp'
19run_test 'find link with %20 in path' 'grep "/with%20space/log/?qt=grep" trash/tmp' 18test_expect_success 'find link with %20 in path' 'grep "/with%20space/log/?qt=grep" tmp'
20run_test 'find link with + in arg' 'grep "/log/?qt=grep&amp;q=commit+1" trash/tmp' 19test_expect_success 'find link with + in arg' 'grep "/log/?qt=grep&amp;q=commit+1" tmp'
21run_test 'no links with space in path' '! grep "href=./with space/" trash/tmp' 20test_expect_success 'no links with space in path' '! grep "href=./with space/" tmp'
22run_test 'no links with space in arg' '! grep "q=commit 1" trash/tmp' 21test_expect_success 'no links with space in arg' '! grep "q=commit 1" tmp'
23run_test 'commit 2 is not visible' '! grep "commit 2" trash/tmp' 22test_expect_success 'commit 2 is not visible' '! grep "commit 2" tmp'
24 23
25tests_done 24test_done
diff --git a/tests/t0104-tree.sh b/tests/t0104-tree.sh index 7aa3b8d..100b026 100755 --- a/tests/t0104-tree.sh +++ b/tests/t0104-tree.sh
@@ -1,33 +1,32 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Check content on tree page'
3. ./setup.sh 4. ./setup.sh
4 5
5prepare_tests "Check content on tree page" 6test_expect_success 'generate bar/tree' 'cgit_url "bar/tree" >tmp'
7test_expect_success 'find file-1' 'grep "file-1" tmp'
8test_expect_success 'find file-50' 'grep "file-50" tmp'
6 9
7run_test 'generate bar/tree' 'cgit_url "bar/tree" >trash/tmp' 10test_expect_success 'generate bar/tree/file-50' 'cgit_url "bar/tree/file-50" >tmp'
8run_test 'find file-1' 'grep "file-1" trash/tmp'
9run_test 'find file-50' 'grep "file-50" trash/tmp'
10 11
11run_test 'generate bar/tree/file-50' 'cgit_url "bar/tree/file-50" >trash/tmp' 12test_expect_success 'find line 1' '
12 13 grep "<a class=.no. id=.n1. name=.n1. href=.#n1.>1</a>" tmp
13run_test 'find line 1' '
14 grep "<a class=.no. id=.n1. name=.n1. href=.#n1.>1</a>" trash/tmp
15' 14'
16 15
17run_test 'no line 2' ' 16test_expect_success 'no line 2' '
18 ! grep "<a class=.no. id=.n2. name=.n2. href=.#n2.>2</a>" trash/tmp 17 ! grep "<a class=.no. id=.n2. name=.n2. href=.#n2.>2</a>" tmp
19' 18'
20 19
21run_test 'generate foo+bar/tree' 'cgit_url "foo%2bbar/tree" >trash/tmp' 20test_expect_success 'generate foo+bar/tree' 'cgit_url "foo%2bbar/tree" >tmp'
22 21
23run_test 'verify a+b link' ' 22test_expect_success 'verify a+b link' '
24 grep "/foo+bar/tree/a+b" trash/tmp 23 grep "/foo+bar/tree/a+b" tmp
25' 24'
26 25
27run_test 'generate foo+bar/tree?h=1+2' 'cgit_url "foo%2bbar/tree&h=1%2b2" >trash/tmp' 26test_expect_success 'generate foo+bar/tree?h=1+2' 'cgit_url "foo%2bbar/tree&h=1%2b2" >tmp'
28 27
29run_test 'verify a+b?h=1+2 link' ' 28test_expect_success 'verify a+b?h=1+2 link' '
30 grep "/foo+bar/tree/a+b?h=1%2b2" trash/tmp 29 grep "/foo+bar/tree/a+b?h=1%2b2" tmp
31' 30'
32 31
33tests_done 32test_done
diff --git a/tests/t0105-commit.sh b/tests/t0105-commit.sh index 31b554b..9cdf55c 100755 --- a/tests/t0105-commit.sh +++ b/tests/t0105-commit.sh
@@ -1,37 +1,36 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Check content on commit page'
3. ./setup.sh 4. ./setup.sh
4 5
5prepare_tests "Check content on commit page" 6test_expect_success 'generate foo/commit' 'cgit_url "foo/commit" >tmp'
7test_expect_success 'find tree link' 'grep "<a href=./foo/tree/.>" tmp'
8test_expect_success 'find parent link' 'grep -E "<a href=./foo/commit/\?id=.+>" tmp'
6 9
7run_test 'generate foo/commit' 'cgit_url "foo/commit" >trash/tmp' 10test_expect_success 'find commit subject' '
8run_test 'find tree link' 'grep "<a href=./foo/tree/.>" trash/tmp' 11 grep "<div class=.commit-subject.>commit 5<" tmp
9run_test 'find parent link' 'grep -E "<a href=./foo/commit/\?id=.+>" trash/tmp'
10
11run_test 'find commit subject' '
12 grep "<div class=.commit-subject.>commit 5<" trash/tmp
13' 12'
14 13
15run_test 'find commit msg' 'grep "<div class=.commit-msg.></div>" trash/tmp' 14test_expect_success 'find commit msg' 'grep "<div class=.commit-msg.></div>" tmp'
16run_test 'find diffstat' 'grep "<table summary=.diffstat. class=.diffstat.>" trash/tmp' 15test_expect_success 'find diffstat' 'grep "<table summary=.diffstat. class=.diffstat.>" tmp'
17 16
18run_test 'find diff summary' ' 17test_expect_success 'find diff summary' '
19 grep "1 files changed, 1 insertions, 0 deletions" trash/tmp 18 grep "1 files changed, 1 insertions, 0 deletions" tmp
20' 19'
21 20
22run_test 'get root commit' ' 21test_expect_success 'get root commit' '
23 root=$(cd trash/repos/foo && git rev-list --reverse HEAD | head -1) && 22 root=$(cd repos/foo && git rev-list --reverse HEAD | head -1) &&
24 cgit_url "foo/commit&id=$root" >trash/tmp && 23 cgit_url "foo/commit&id=$root" >tmp &&
25 grep "</html>" trash/tmp 24 grep "</html>" tmp
26' 25'
27 26
28run_test 'root commit contains diffstat' ' 27test_expect_success 'root commit contains diffstat' '
29 grep "<a href=./foo/diff/file-1.id=[0-9a-f]\{40\}.>file-1</a>" trash/tmp 28 grep "<a href=./foo/diff/file-1.id=[0-9a-f]\{40\}.>file-1</a>" tmp
30' 29'
31 30
32run_test 'root commit contains diff' ' 31test_expect_success 'root commit contains diff' '
33 grep ">diff --git a/file-1 b/file-1<" trash/tmp && 32 grep ">diff --git a/file-1 b/file-1<" tmp &&
34 grep "<div class=.add.>+1</div>" trash/tmp 33 grep "<div class=.add.>+1</div>" tmp
35' 34'
36 35
37tests_done 36test_done
diff --git a/tests/t0106-diff.sh b/tests/t0106-diff.sh index eee0c8c..82b645e 100755 --- a/tests/t0106-diff.sh +++ b/tests/t0106-diff.sh
@@ -1,20 +1,19 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Check content on diff page'
3. ./setup.sh 4. ./setup.sh
4 5
5prepare_tests "Check content on diff page" 6test_expect_success 'generate foo/diff' 'cgit_url "foo/diff" >tmp'
7test_expect_success 'find diff header' 'grep "a/file-5 b/file-5" tmp'
8test_expect_success 'find blob link' 'grep "<a href=./foo/tree/file-5?id=" tmp'
9test_expect_success 'find added file' 'grep "new file mode 100644" tmp'
6 10
7run_test 'generate foo/diff' 'cgit_url "foo/diff" >trash/tmp' 11test_expect_success 'find hunk header' '
8run_test 'find diff header' 'grep "a/file-5 b/file-5" trash/tmp' 12 grep "<div class=.hunk.>@@ -0,0 +1 @@</div>" tmp
9run_test 'find blob link' 'grep "<a href=./foo/tree/file-5?id=" trash/tmp'
10run_test 'find added file' 'grep "new file mode 100644" trash/tmp'
11
12run_test 'find hunk header' '
13 grep "<div class=.hunk.>@@ -0,0 +1 @@</div>" trash/tmp
14' 13'
15 14
16run_test 'find added line' ' 15test_expect_success 'find added line' '
17 grep "<div class=.add.>+5</div>" trash/tmp 16 grep "<div class=.add.>+5</div>" tmp
18' 17'
19 18
20tests_done 19test_done
diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh index 132d2e9..4fbe45e 100755 --- a/tests/t0107-snapshot.sh +++ b/tests/t0107-snapshot.sh
@@ -1,77 +1,76 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Verify snapshot'
3. ./setup.sh 4. ./setup.sh
4 5
5prepare_tests "Verify snapshot" 6test_expect_success 'get foo/snapshot/master.tar.gz' '
6 7 cgit_url "foo/snapshot/master.tar.gz" >tmp
7run_test 'get foo/snapshot/master.tar.gz' '
8 cgit_url "foo/snapshot/master.tar.gz" >trash/tmp
9' 8'
10 9
11run_test 'check html headers' ' 10test_expect_success 'check html headers' '
12 head -n 1 trash/tmp | 11 head -n 1 tmp |
13 grep "Content-Type: application/x-gzip" && 12 grep "Content-Type: application/x-gzip" &&
14 13
15 head -n 2 trash/tmp | 14 head -n 2 tmp |
16 grep "Content-Disposition: inline; filename=.master.tar.gz." 15 grep "Content-Disposition: inline; filename=.master.tar.gz."
17' 16'
18 17
19run_test 'strip off the header lines' ' 18test_expect_success 'strip off the header lines' '
20 tail -n +6 trash/tmp > trash/master.tar.gz 19 tail -n +6 tmp > master.tar.gz
21' 20'
22 21
23run_test 'verify gzip format' ' 22test_expect_success 'verify gzip format' '
24 gunzip --test trash/master.tar.gz 23 gunzip --test master.tar.gz
25' 24'
26 25
27run_test 'untar' ' 26test_expect_success 'untar' '
28 rm -rf trash/master && 27 rm -rf master &&
29 tar -xf trash/master.tar.gz -C trash 28 tar -xf master.tar.gz
30' 29'
31 30
32run_test 'count files' ' 31test_expect_success 'count files' '
33 c=$(ls -1 trash/master/ | wc -l) && 32 ls master/ >output &&
34 test $c = 5 33 test_line_count = 5 output
35' 34'
36 35
37run_test 'verify untarred file-5' ' 36test_expect_success 'verify untarred file-5' '
38 grep "^5$" trash/master/file-5 && 37 grep "^5$" master/file-5 &&
39 test $(cat trash/master/file-5 | wc -l) = 1 38 test_line_count = 1 master/file-5
40' 39'
41 40
42run_test 'get foo/snapshot/master.zip' ' 41test_expect_success 'get foo/snapshot/master.zip' '
43 cgit_url "foo/snapshot/master.zip" >trash/tmp 42 cgit_url "foo/snapshot/master.zip" >tmp
44' 43'
45 44
46run_test 'check HTML headers (zip)' ' 45test_expect_success 'check HTML headers (zip)' '
47 head -n 1 trash/tmp | 46 head -n 1 tmp |
48 grep "Content-Type: application/x-zip" && 47 grep "Content-Type: application/x-zip" &&
49 48
50 head -n 2 trash/tmp | 49 head -n 2 tmp |
51 grep "Content-Disposition: inline; filename=.master.zip." 50 grep "Content-Disposition: inline; filename=.master.zip."
52' 51'
53 52
54run_test 'strip off the header lines (zip)' ' 53test_expect_success 'strip off the header lines (zip)' '
55 tail -n +6 trash/tmp >trash/master.zip 54 tail -n +6 tmp >master.zip
56' 55'
57 56
58run_test 'verify zip format' ' 57test_expect_success 'verify zip format' '
59 unzip -t trash/master.zip 58 unzip -t master.zip
60' 59'
61 60
62run_test 'unzip' ' 61test_expect_success 'unzip' '
63 rm -rf trash/master && 62 rm -rf master &&
64 unzip trash/master.zip -d trash 63 unzip master.zip
65' 64'
66 65
67run_test 'count files (zip)' ' 66test_expect_success 'count files (zip)' '
68 c=$(ls -1 trash/master/ | wc -l) && 67 ls master/ >output &&
69 test $c = 5 68 test_line_count = 5 output
70' 69'
71 70
72run_test 'verify unzipped file-5' ' 71test_expect_success 'verify unzipped file-5' '
73 grep "^5$" trash/master/file-5 && 72 grep "^5$" master/file-5 &&
74 test $(cat trash/master/file-5 | wc -l) = 1 73 test_line_count = 1 master/file-5
75' 74'
76 75
77tests_done 76test_done
diff --git a/tests/t0108-patch.sh b/tests/t0108-patch.sh index f92f69c..3b5bae4 100755 --- a/tests/t0108-patch.sh +++ b/tests/t0108-patch.sh
@@ -1,39 +1,38 @@
1#!/bin/sh 1#!/bin/sh
2 2
3test_description='Check content on patch page'
3. ./setup.sh 4. ./setup.sh
4 5
5prepare_tests "Check content on patch page" 6test_expect_success 'generate foo/patch' '
6 7 cgit_query "url=foo/patch" >tmp
7run_test 'generate foo/patch' '
8 cgit_query "url=foo/patch" >trash/tmp
9' 8'
10 9
11run_test 'find `From:` line' ' 10test_expect_success 'find `From:` line' '
12 grep "^From: " trash/tmp 11 grep "^From: " tmp
13' 12'
14 13
15run_test 'find `Date:` line' ' 14test_expect_success 'find `Date:` line' '
16 grep "^Date: " trash/tmp 15 grep "^Date: " tmp
17' 16'
18 17
19run_test 'find `Subject:` line' ' 18test_expect_success 'find `Subject:` line' '
20 grep "^Subject: commit 5" trash/tmp 19 grep "^Subject: commit 5" tmp
21' 20'
22 21
23run_test 'find `cgit` signature' ' 22test_expect_success 'find `cgit` signature' '
24 tail -1 trash/tmp | grep "^cgit" 23 tail -1 tmp | grep "^cgit"
25' 24'
26 25
27run_test 'find initial commit' ' 26test_expect_success 'find initial commit' '
28 root=$(git --git-dir="$PWD/trash/repos/foo/.git" rev-list HEAD | tail -1) 27 root=$(git --git-dir="$PWD/repos/foo/.git" rev-list HEAD | tail -1)
29' 28'
30 29
31run_test 'generate patch for initial commit' ' 30test_expect_success 'generate patch for initial commit' '
32 cgit_query "url=foo/patch&id=$root" >trash/tmp 31 cgit_query "url=foo/patch&id=$root" >tmp
33' 32'
34 33
35run_test 'find `cgit` signature' ' 34test_expect_success 'find `cgit` signature' '
36 tail -1 trash/tmp | grep "^cgit" 35 tail -1 tmp | grep "^cgit"
37' 36'
38 37
39tests_done 38test_done