blob: 48c84069662bc08cc27fdc03d93650403c49e43c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/bin/sh

# The tree page. The checks against foo+bar cover a file name and a branch
# name that both contain a plus, which cgit percent-encodes in a path as
# well as in a query, since a bare plus in a served path reads back as a
# space through a query string.

test_description='Check content on tree page'
. ./setup.sh

test_expect_success 'generate bar/tree' 'cgit_url "bar/tree" >tmp'
test_expect_success 'find file-1' 'grep "file-1" tmp'
test_expect_success 'find file-50' 'grep "file-50" tmp'

test_expect_success 'generate bar/tree/file-50' 'cgit_url "bar/tree/file-50" >tmp'

test_expect_success 'find line 1' '
	grep "<a id=.n1. href=.#n1.>1</a>" tmp
'

test_expect_success 'no line 2' '
	! grep "<a id=.n2. href=.#n2.>2</a>" tmp
'

test_expect_success 'generate foo+bar/tree' 'cgit_url "foo%2bbar/tree" >tmp'

test_expect_success 'verify a+b link' '
	grep "/foo%2Bbar/tree/a%2Bb" tmp
'

test_expect_success 'generate foo+bar/tree?h=1+2' 'cgit_url "foo%2bbar/tree&h=1%2b2" >tmp'

test_expect_success 'verify a+b?h=1+2 link' '
	grep "/foo%2Bbar/tree/a%2Bb?h=1%2B2" tmp
'

test_expect_success 'set up a repo with a nested submodule' '
	mkrepo repos/submodules 1 &&
	(
		cd repos/submodules &&
		sub=$(git rev-parse HEAD) &&
		git update-index --add --cacheinfo 160000,$sub,vendor/sub &&
		git commit -m gitlink
	) &&
	{
		echo "virtual-root=/" &&
		echo "cache-size=0" &&
		echo "enable-blame=1" &&
		echo "repo.url=submodules" &&
		echo "repo.path=$PWD/repos/submodules/.git"
	} >submodrc
'

test_expect_success 'generate submodules/tree/vendor' '
	CGIT_CONFIG="$PWD/submodrc" QUERY_STRING="url=submodules/tree/vendor" cgit >tmp
'

test_expect_success 'a submodule row shows the entry name alone' '
	grep "class=.ls-mod.>sub</span>" tmp &&
	! grep ">vendor/sub</span>" tmp
'

test_expect_success 'the submodule hash is titled with the full id' '
	sub=$(git -C repos/submodules rev-parse HEAD~1) &&
	grep "class=.ls-mod-hash. title=.$sub.>" tmp
'

test_expect_success 'a submodule row shows no size' '
	grep "ls-mod" tmp >row &&
	grep "class=.ls-size.>-</td>" row
'

test_expect_success 'a submodule row offers log but not blame or plain' '
	grep "ls-mod" tmp >row &&
	grep ">log</a>" row &&
	! grep ">blame</a>" row &&
	! grep ">plain</a>" row
'

test_expect_success 'a file row still offers blame' '
	CGIT_CONFIG="$PWD/submodrc" QUERY_STRING="url=submodules/tree/" cgit >tmp &&
	grep ">blame</a>" tmp
'

test_done