Commit | Line | Data |
---|---|---|
04481adf TC |
1 | #!/bin/sh |
2 | ||
3 | find_file() { | |
4 | cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && | |
5 | find $1 -type f | | |
6 | sed -e 1q | |
7 | } | |
8 | ||
9 | config() { | |
10 | git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/repo.git" config $1 $2 | |
11 | } | |
12 | ||
13 | test_expect_success 'setup repository' ' | |
14 | echo content >file && | |
15 | git add file && | |
16 | git commit -m one && | |
17 | ||
18 | mkdir "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && | |
19 | (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && | |
20 | git --bare init && | |
21 | : >objects/info/alternates && | |
22 | : >objects/info/http-alternates | |
23 | ) && | |
24 | git remote add public "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && | |
25 | git push public master:master && | |
26 | ||
27 | (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && | |
28 | git repack -a -d | |
29 | ) && | |
30 | ||
31 | echo other >file && | |
32 | git add file && | |
33 | git commit -m two && | |
34 | git push public master:master && | |
35 | ||
36 | LOOSE_URL=$(find_file objects/??) && | |
37 | PACK_URL=$(find_file objects/pack/*.pack) && | |
38 | IDX_URL=$(find_file objects/pack/*.idx) | |
39 | ' | |
40 | ||
41 | get_static_files() { | |
42 | GET HEAD "$1" && | |
43 | GET info/refs "$1" && | |
44 | GET objects/info/packs "$1" && | |
45 | GET objects/info/alternates "$1" && | |
46 | GET objects/info/http-alternates "$1" && | |
47 | GET $LOOSE_URL "$1" && | |
48 | GET $PACK_URL "$1" && | |
49 | GET $IDX_URL "$1" | |
50 | } | |
51 | ||
52 | SMART=smart | |
69ae92bd | 53 | GIT_HTTP_EXPORT_ALL=1 && export GIT_HTTP_EXPORT_ALL |
04481adf | 54 | test_expect_success 'direct refs/heads/master not found' ' |
a48fcd83 | 55 | log_div "refs/heads/master" && |
04481adf TC |
56 | GET refs/heads/master "404 Not Found" |
57 | ' | |
58 | test_expect_success 'static file is ok' ' | |
a48fcd83 | 59 | log_div "getanyfile default" && |
04481adf TC |
60 | get_static_files "200 OK" |
61 | ' | |
62 | SMART=smart_noexport | |
fd0a8c2e | 63 | unset GIT_HTTP_EXPORT_ALL |
04481adf | 64 | test_expect_success 'no export by default' ' |
a48fcd83 | 65 | log_div "no git-daemon-export-ok" && |
04481adf TC |
66 | get_static_files "404 Not Found" |
67 | ' | |
68 | test_expect_success 'export if git-daemon-export-ok' ' | |
a48fcd83 | 69 | log_div "git-daemon-export-ok" && |
04481adf TC |
70 | (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && |
71 | touch git-daemon-export-ok | |
72 | ) && | |
73 | get_static_files "200 OK" | |
74 | ' | |
75 | SMART=smart | |
69ae92bd | 76 | GIT_HTTP_EXPORT_ALL=1 && export GIT_HTTP_EXPORT_ALL |
04481adf | 77 | test_expect_success 'static file if http.getanyfile true is ok' ' |
a48fcd83 | 78 | log_div "getanyfile true" && |
04481adf TC |
79 | config http.getanyfile true && |
80 | get_static_files "200 OK" | |
81 | ' | |
82 | test_expect_success 'static file if http.getanyfile false fails' ' | |
a48fcd83 | 83 | log_div "getanyfile false" && |
04481adf TC |
84 | config http.getanyfile false && |
85 | get_static_files "403 Forbidden" | |
86 | ' | |
87 | ||
88 | test_expect_success 'http.uploadpack default enabled' ' | |
a48fcd83 | 89 | log_div "uploadpack default" && |
04481adf TC |
90 | GET info/refs?service=git-upload-pack "200 OK" && |
91 | POST git-upload-pack 0000 "200 OK" | |
92 | ' | |
93 | test_expect_success 'http.uploadpack true' ' | |
a48fcd83 | 94 | log_div "uploadpack true" && |
04481adf TC |
95 | config http.uploadpack true && |
96 | GET info/refs?service=git-upload-pack "200 OK" && | |
97 | POST git-upload-pack 0000 "200 OK" | |
98 | ' | |
99 | test_expect_success 'http.uploadpack false' ' | |
a48fcd83 | 100 | log_div "uploadpack false" && |
04481adf TC |
101 | config http.uploadpack false && |
102 | GET info/refs?service=git-upload-pack "403 Forbidden" && | |
103 | POST git-upload-pack 0000 "403 Forbidden" | |
104 | ' | |
105 | ||
106 | test_expect_success 'http.receivepack default disabled' ' | |
a48fcd83 | 107 | log_div "receivepack default" && |
04481adf TC |
108 | GET info/refs?service=git-receive-pack "403 Forbidden" && |
109 | POST git-receive-pack 0000 "403 Forbidden" | |
110 | ' | |
111 | test_expect_success 'http.receivepack true' ' | |
a48fcd83 | 112 | log_div "receivepack true" && |
04481adf TC |
113 | config http.receivepack true && |
114 | GET info/refs?service=git-receive-pack "200 OK" && | |
115 | POST git-receive-pack 0000 "200 OK" | |
116 | ' | |
117 | test_expect_success 'http.receivepack false' ' | |
a48fcd83 | 118 | log_div "receivepack false" && |
04481adf TC |
119 | config http.receivepack false && |
120 | GET info/refs?service=git-receive-pack "403 Forbidden" && | |
121 | POST git-receive-pack 0000 "403 Forbidden" | |
122 | ' |