File tests/git2.php changed (mode: 100644) (index 25937f3..40d9fc2) |
... |
... |
require_once("common.php"); |
18 |
18 |
$_testns = 'git2'; |
$_testns = 'git2'; |
19 |
19 |
$rg_cache_enable = TRUE; |
$rg_cache_enable = TRUE; |
20 |
20 |
|
|
|
21 |
|
prepare_http(); |
|
22 |
|
|
21 |
23 |
system("./git2.sh &>git2.sh.log"); |
system("./git2.sh &>git2.sh.log"); |
22 |
24 |
$_err = file_get_contents('git2.sh.log'); |
$_err = file_get_contents('git2.sh.log'); |
23 |
25 |
@unlink('git2.log'); |
@unlink('git2.log'); |
|
... |
... |
rg_test_create_user($db, $rg_ui); |
46 |
48 |
rg_log('Created user ' . $rg_ui['uid']); |
rg_log('Created user ' . $rg_ui['uid']); |
47 |
49 |
rg_test_create_repo($db, $rg_ui, $repo); |
rg_test_create_repo($db, $rg_ui, $repo); |
48 |
50 |
rg_log('Created repo ' . $repo['repo_id']); |
rg_log('Created repo ' . $repo['repo_id']); |
49 |
|
$r = test_login($test_url, $rg_ui, $good_sid); |
|
|
51 |
|
$r = test_login($test_url, $rg_ui); |
50 |
52 |
if ($r === FALSE) { |
if ($r === FALSE) { |
51 |
53 |
rg_log("Cannot login!"); |
rg_log("Cannot login!"); |
52 |
54 |
exit(1); |
exit(1); |
|
... |
... |
if ($r === FALSE) { |
55 |
57 |
|
|
56 |
58 |
rg_log(''); |
rg_log(''); |
57 |
59 |
rg_log_enter('Uploading a key...'); |
rg_log_enter('Uploading a key...'); |
58 |
|
rg_test_upload_ssh_key($db, $rg_ui, "git2", $good_sid); |
|
|
60 |
|
rg_test_upload_ssh_key($db, $rg_ui, 'git2'); |
59 |
61 |
rg_log_exit(); |
rg_log_exit(); |
60 |
62 |
|
|
61 |
63 |
|
|
|
... |
... |
rg_log("Load master from .git: $commit"); |
94 |
96 |
rg_log(''); |
rg_log(''); |
95 |
97 |
rg_log_enter('Checking on web that everything is OK...'); |
rg_log_enter('Checking on web that everything is OK...'); |
96 |
98 |
$data = array(); |
$data = array(); |
97 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
99 |
|
$headers = array(); |
98 |
100 |
$r = do_req($test_url . '/user/' . rawurlencode($rg_ui['username']) |
$r = do_req($test_url . '/user/' . rawurlencode($rg_ui['username']) |
99 |
101 |
. '/' . rawurlencode($repo['name']) . '/source/log/commit/' |
. '/' . rawurlencode($repo['name']) . '/source/log/commit/' |
100 |
102 |
. $commit, $data, $headers); |
. $commit, $data, $headers); |
|
... |
... |
rg_log_exit(); |
108 |
110 |
rg_log(''); |
rg_log(''); |
109 |
111 |
rg_log_enter('Checking on web that tag is OK...'); |
rg_log_enter('Checking on web that tag is OK...'); |
110 |
112 |
$data = array(); |
$data = array(); |
111 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
113 |
|
$headers = array(); |
112 |
114 |
$r = do_req($test_url . '/user/' . rawurlencode($rg_ui['username']) |
$r = do_req($test_url . '/user/' . rawurlencode($rg_ui['username']) |
113 |
115 |
. '/' . rawurlencode($repo['name']) |
. '/' . rawurlencode($repo['name']) |
114 |
116 |
. '/source/tree/tag/unannot1/blob/a', $data, $headers); |
. '/source/tree/tag/unannot1/blob/a', $data, $headers); |
|
... |
... |
if ($r['ok'] != 1) { |
141 |
143 |
exit(1); |
exit(1); |
142 |
144 |
} |
} |
143 |
145 |
// Now, the branch should not be visible anymore |
// Now, the branch should not be visible anymore |
144 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
146 |
|
$headers = array(); |
145 |
147 |
$r = do_req($test_url . '/user/' . rawurlencode($rg_ui['username']) |
$r = do_req($test_url . '/user/' . rawurlencode($rg_ui['username']) |
146 |
148 |
. '/' . rawurlencode($repo['name']) . '/source', $data, $headers); |
. '/' . rawurlencode($repo['name']) . '/source', $data, $headers); |
147 |
149 |
rg_log_ml($r['body']); |
rg_log_ml($r['body']); |
File tests/helpers.inc.php changed (mode: 100644) (index 10cade7..7267b69) |
... |
... |
function rg_test_create_repo($db, $rg_ui, &$extra) |
152 |
152 |
exit(1); |
exit(1); |
153 |
153 |
} |
} |
154 |
154 |
rg_repo_cosmetic($db, $extra); |
rg_repo_cosmetic($db, $extra); |
|
155 |
|
rg_log_ml('extra: ' . print_r($extra, TRUE)); |
155 |
156 |
|
|
156 |
157 |
if ($repo_id > 0) { |
if ($repo_id > 0) { |
157 |
158 |
$sql = "UPDATE repos SET repo_id = $repo_id" |
$sql = "UPDATE repos SET repo_id = $repo_id" |
|
... |
... |
function rg_test_create_bug($db, $rg_ui, $ri, &$extra) |
266 |
267 |
* Helper for creating and uploading a ssh key |
* Helper for creating and uploading a ssh key |
267 |
268 |
* Returns the key. |
* Returns the key. |
268 |
269 |
*/ |
*/ |
269 |
|
function rg_test_upload_ssh_key($db, $rg_ui, $key_name, $good_sid) |
|
|
270 |
|
function rg_test_upload_ssh_key($db, $rg_ui, $key_name) |
270 |
271 |
{ |
{ |
271 |
272 |
global $test_url; |
global $test_url; |
272 |
273 |
|
|
|
... |
... |
function rg_test_upload_ssh_key($db, $rg_ui, $key_name, $good_sid) |
292 |
293 |
|
|
293 |
294 |
rg_log("Loading ssh key form..."); |
rg_log("Loading ssh key form..."); |
294 |
295 |
$data = array(); |
$data = array(); |
295 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
296 |
|
$headers = array(); |
296 |
297 |
$r = do_req($test_url . "/op/settings/keys?t=load_key_form", $data, $headers); |
$r = do_req($test_url . "/op/settings/keys?t=load_key_form", $data, $headers); |
297 |
298 |
if ($r === FALSE) { |
if ($r === FALSE) { |
298 |
299 |
rg_log("Cannot load form!"); |
rg_log("Cannot load form!"); |
|
... |
... |
function rg_test_upload_ssh_key($db, $rg_ui, $key_name, $good_sid) |
306 |
307 |
|
|
307 |
308 |
rg_log("Uploading the key..."); |
rg_log("Uploading the key..."); |
308 |
309 |
$data = array('add' => 1, 'token' => $r['tokens']['keys'], 'key' => $key); |
$data = array('add' => 1, 'token' => $r['tokens']['keys'], 'key' => $key); |
309 |
|
$headers = array('Cookie: sid=' . $good_sid); |
|
|
310 |
|
$headers = array(); |
310 |
311 |
$r = do_req($test_url . '/op/settings/keys?t=upload_ssh_key', $data, $headers); |
$r = do_req($test_url . '/op/settings/keys?t=upload_ssh_key', $data, $headers); |
311 |
312 |
if ($r === FALSE) { |
if ($r === FALSE) { |
312 |
313 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
function rg_test_upload_ssh_key($db, $rg_ui, $key_name, $good_sid) |
334 |
335 |
* Helper for generating scratch codes |
* Helper for generating scratch codes |
335 |
336 |
* Returns the scratch codes. |
* Returns the scratch codes. |
336 |
337 |
*/ |
*/ |
337 |
|
function rg_test_sc_generate($db, $rg_ui, $good_sid) |
|
|
338 |
|
function rg_test_sc_generate($db, $rg_ui) |
338 |
339 |
{ |
{ |
339 |
340 |
global $test_url; |
global $test_url; |
340 |
341 |
|
|
341 |
342 |
rg_log("Loading generate scratch codes form..."); |
rg_log("Loading generate scratch codes form..."); |
342 |
343 |
$data = array(); |
$data = array(); |
343 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
344 |
|
$headers = array(); |
344 |
345 |
$r = do_req($test_url . "/op/settings/totp/sc", $data, $headers); |
$r = do_req($test_url . "/op/settings/totp/sc", $data, $headers); |
345 |
346 |
if ($r === FALSE) { |
if ($r === FALSE) { |
346 |
347 |
rg_log("Cannot load form!"); |
rg_log("Cannot load form!"); |
|
... |
... |
function rg_test_sc_generate($db, $rg_ui, $good_sid) |
354 |
355 |
|
|
355 |
356 |
rg_log("Generating scratch codes..."); |
rg_log("Generating scratch codes..."); |
356 |
357 |
$data = array('generate' => 1, 'token' => $r['tokens']['sc']); |
$data = array('generate' => 1, 'token' => $r['tokens']['sc']); |
357 |
|
$headers = array('Cookie: sid=' . $good_sid); |
|
|
358 |
|
$headers = array(); |
358 |
359 |
$r = do_req($test_url . '/op/settings/totp/sc', $data, $headers); |
$r = do_req($test_url . '/op/settings/totp/sc', $data, $headers); |
359 |
360 |
if ($r === FALSE) { |
if ($r === FALSE) { |
360 |
361 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
function rg_test_sc_generate($db, $rg_ui, $good_sid) |
377 |
378 |
/* |
/* |
378 |
379 |
* Helper for adding a webhook |
* Helper for adding a webhook |
379 |
380 |
*/ |
*/ |
380 |
|
function rg_test_wh_add_edit($db, $rg_ui, $good_sid, $htype, $extra) |
|
|
381 |
|
function rg_test_wh_add_edit($db, $rg_ui, $htype, $extra) |
381 |
382 |
{ |
{ |
382 |
383 |
global $test_url; |
global $test_url; |
383 |
384 |
|
|
384 |
385 |
rg_log_enter('Loading webhook add form...'); |
rg_log_enter('Loading webhook add form...'); |
385 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
386 |
|
$headers = array(); |
386 |
387 |
|
|
387 |
388 |
if (!isset($extra['wh::id'])) |
if (!isset($extra['wh::id'])) |
388 |
389 |
$extra['wh::id'] = 0; |
$extra['wh::id'] = 0; |
|
... |
... |
function rg_test_wh_add_edit($db, $rg_ui, $good_sid, $htype, $extra) |
405 |
406 |
rg_log("Adding webhook..."); |
rg_log("Adding webhook..."); |
406 |
407 |
$data = array('doit' => 1, 'token' => $r['tokens']['wh_add']); |
$data = array('doit' => 1, 'token' => $r['tokens']['wh_add']); |
407 |
408 |
$data = array_merge($data, $extra); |
$data = array_merge($data, $extra); |
408 |
|
$headers = array('Cookie: sid=' . $good_sid); |
|
|
409 |
|
$headers = array(); |
409 |
410 |
$r = do_req($test_url . '/op/settings/wh/' . $url, $data, $headers); |
$r = do_req($test_url . '/op/settings/wh/' . $url, $data, $headers); |
410 |
411 |
if ($r === FALSE) { |
if ($r === FALSE) { |
411 |
412 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
File tests/http.inc.php changed (mode: 100644) (index c43bea9..b03e41e) |
3 |
3 |
if (!isset($test_ua)) |
if (!isset($test_ua)) |
4 |
4 |
$test_ua = "curl"; |
$test_ua = "curl"; |
5 |
5 |
|
|
|
6 |
|
/* |
|
7 |
|
* Clean all cookies |
|
8 |
|
*/ |
|
9 |
|
function clean_cookies() |
|
10 |
|
{ |
|
11 |
|
global $_testns; |
|
12 |
|
|
|
13 |
|
$path = __DIR__ . '/jars'; |
|
14 |
|
if (!file_exists($path)) |
|
15 |
|
return; |
|
16 |
|
|
|
17 |
|
rg_log('Cleaning cookies...'); |
|
18 |
|
$cookie_jar = $path . '/' . $_testns; |
|
19 |
|
@unlink($cookie_jar); |
|
20 |
|
} |
|
21 |
|
|
|
22 |
|
/* |
|
23 |
|
* This is called at the begining of all tests |
|
24 |
|
*/ |
|
25 |
|
function prepare_http() |
|
26 |
|
{ |
|
27 |
|
clean_cookies(); |
|
28 |
|
} |
|
29 |
|
|
6 |
30 |
/* |
/* |
7 |
31 |
* Data is an array |
* Data is an array |
8 |
32 |
*/ |
*/ |
|
33 |
|
$http_handles = array(); |
9 |
34 |
function do_req($url, &$data, &$headers) |
function do_req($url, &$data, &$headers) |
10 |
35 |
{ |
{ |
11 |
36 |
global $test_ua, $test_referer; |
global $test_ua, $test_referer; |
|
37 |
|
global $cookie_jar; |
|
38 |
|
global $http_handles; |
|
39 |
|
global $http_client; |
|
40 |
|
global $_testns; |
|
41 |
|
|
|
42 |
|
if (!isset($http_client)) |
|
43 |
|
$http_client = $_testns; |
|
44 |
|
|
|
45 |
|
$path = __DIR__ . '/jars'; |
|
46 |
|
if (!file_exists($path)) |
|
47 |
|
mkdir($path); |
|
48 |
|
$cookie_jar = $path . '/' . $http_client; |
12 |
49 |
|
|
13 |
50 |
if (!is_array($data)) |
if (!is_array($data)) |
14 |
51 |
$data = array(); |
$data = array(); |
15 |
52 |
|
|
16 |
|
$data['rg_debug'] = 1; |
|
17 |
|
|
|
18 |
53 |
if (!is_array($headers)) { |
if (!is_array($headers)) { |
19 |
54 |
rg_log("Headers is not an array, reset it."); |
rg_log("Headers is not an array, reset it."); |
20 |
55 |
$headers = array(); |
$headers = array(); |
21 |
56 |
} |
} |
22 |
57 |
|
|
|
58 |
|
if (!strstr($url, '?')) |
|
59 |
|
$url .= '?rg_debug=1'; |
|
60 |
|
else |
|
61 |
|
$url .= '&rg_debug=1'; |
|
62 |
|
|
23 |
63 |
rg_log_ml("do_req url[$url] data=" . print_r($data, TRUE) |
rg_log_ml("do_req url[$url] data=" . print_r($data, TRUE) |
24 |
64 |
. "headers=" . print_r($headers, TRUE)); |
. "headers=" . print_r($headers, TRUE)); |
25 |
65 |
|
|
26 |
|
$c = curl_init($url); |
|
27 |
|
if (count($data) > 0) { |
|
|
66 |
|
$c = FALSE; |
|
67 |
|
if (isset($http_handles[$http_client])) |
|
68 |
|
$c = $http_handles[$http_client]; |
|
69 |
|
if ($c === FALSE) { |
|
70 |
|
$c = curl_init(); |
|
71 |
|
$http_handles[$http_client] = $c; |
|
72 |
|
} |
|
73 |
|
|
|
74 |
|
curl_setopt($c, CURLOPT_URL, $url); |
|
75 |
|
if (!empty($data)) { |
28 |
76 |
curl_setopt($c, CURLOPT_POST, 1); |
curl_setopt($c, CURLOPT_POST, 1); |
29 |
77 |
curl_setopt($c, CURLOPT_POSTFIELDS, $data); |
curl_setopt($c, CURLOPT_POSTFIELDS, $data); |
30 |
78 |
} else { |
} else { |
31 |
|
if (!strstr($url, '?')) |
|
32 |
|
$url .= '?rg_debug=1'; |
|
33 |
|
else |
|
34 |
|
$url .= '&rg_debug=1'; |
|
|
79 |
|
curl_setopt($c, CURLOPT_POST, 0); |
|
80 |
|
curl_setopt($c, CURLOPT_POSTFIELDS, ''); |
35 |
81 |
} |
} |
36 |
82 |
curl_setopt($c, CURLOPT_RETURNTRANSFER, TRUE); |
curl_setopt($c, CURLOPT_RETURNTRANSFER, TRUE); |
37 |
|
// We cannot use this because we will not have a |
|
38 |
|
// chance to capture the sid. |
|
39 |
|
//curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1); |
|
|
83 |
|
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1); |
40 |
84 |
curl_setopt($c, CURLOPT_HEADER, 1); |
curl_setopt($c, CURLOPT_HEADER, 1); |
41 |
85 |
curl_setopt($c, CURLOPT_HTTPHEADER, $headers); |
curl_setopt($c, CURLOPT_HTTPHEADER, $headers); |
42 |
86 |
curl_setopt($c, CURLOPT_USERAGENT, $test_ua); |
curl_setopt($c, CURLOPT_USERAGENT, $test_ua); |
|
... |
... |
function do_req($url, &$data, &$headers) |
44 |
88 |
curl_setopt($c, CURLOPT_CERTINFO, TRUE); |
curl_setopt($c, CURLOPT_CERTINFO, TRUE); |
45 |
89 |
curl_setopt($c, CURLOPT_VERBOSE, TRUE); |
curl_setopt($c, CURLOPT_VERBOSE, TRUE); |
46 |
90 |
curl_setopt($c, CURLOPT_ENCODING , 'gzip'); |
curl_setopt($c, CURLOPT_ENCODING , 'gzip'); |
|
91 |
|
curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_jar); |
|
92 |
|
curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_jar); |
47 |
93 |
|
|
48 |
94 |
$err = @fopen('php://temp', 'w'); |
$err = @fopen('php://temp', 'w'); |
49 |
95 |
if ($err !== FALSE) { |
if ($err !== FALSE) { |
|
... |
... |
function do_req($url, &$data, &$headers) |
72 |
118 |
$header_size = curl_getinfo($c, CURLINFO_HEADER_SIZE); |
$header_size = curl_getinfo($c, CURLINFO_HEADER_SIZE); |
73 |
119 |
$ret['header'] = substr($r, 0, $header_size); |
$ret['header'] = substr($r, 0, $header_size); |
74 |
120 |
$ret['body'] = substr($r, $header_size); |
$ret['body'] = substr($r, $header_size); |
75 |
|
curl_close($c); |
|
76 |
121 |
|
|
77 |
122 |
// Check for XSS |
// Check for XSS |
78 |
123 |
if (stristr($ret['body'], '<xss>')) { |
if (stristr($ret['body'], '<xss>')) { |
|
... |
... |
function do_req($url, &$data, &$headers) |
137 |
182 |
if (!isset($t[1])) { |
if (!isset($t[1])) { |
138 |
183 |
rg_log_ml('body: ' . print_r($ret['body'], TRUE)); |
rg_log_ml('body: ' . print_r($ret['body'], TRUE)); |
139 |
184 |
rg_log_ml('matches: ' . print_r($matches[1], TRUE)); |
rg_log_ml('matches: ' . print_r($matches[1], TRUE)); |
140 |
|
rg_log('Invalid debug token: ' . $m); |
|
|
185 |
|
rg_log('Invalid debug token (no prefix): ' . $m); |
141 |
186 |
exit(1); |
exit(1); |
142 |
187 |
} |
} |
143 |
188 |
$ret['tokens'][$t[1]] = $t[0]; |
$ret['tokens'][$t[1]] = $t[0]; |
|
... |
... |
function do_req($url, &$data, &$headers) |
161 |
206 |
rg_log('DEBUG ret[totp_secret]=' . $ret['totp_secret']); |
rg_log('DEBUG ret[totp_secret]=' . $ret['totp_secret']); |
162 |
207 |
} |
} |
163 |
208 |
|
|
164 |
|
$x = preg_match('/Location: (.*)\s/', $ret['header'], $matches); |
|
165 |
|
if ($x === 1) { |
|
166 |
|
if (strncmp($url, "http://", 7) == 0) |
|
167 |
|
$url = substr($url, 7); |
|
168 |
|
$t = explode("/", $url, 2); |
|
169 |
|
$new = "http://" . $t[0] . trim($matches[1]); |
|
170 |
|
rg_log("Redirecting to $new..."); |
|
171 |
|
$data = array(); |
|
172 |
|
if (!empty($ret['sid'])) |
|
173 |
|
$headers = array("Cookie: sid=" . $ret['sid']); |
|
174 |
|
$f = do_req($new, $data, $headers); |
|
175 |
|
if (empty($f['sid'])) |
|
176 |
|
$f['sid'] = $ret['sid']; |
|
177 |
|
return $f; |
|
178 |
|
} |
|
179 |
|
|
|
180 |
209 |
@rename('http-last.out', 'http-prev.out'); |
@rename('http-last.out', 'http-prev.out'); |
181 |
210 |
file_put_contents('http-last.out', $ret['body']); |
file_put_contents('http-last.out', $ret['body']); |
182 |
211 |
|
|
|
... |
... |
function do_req($url, &$data, &$headers) |
184 |
213 |
} |
} |
185 |
214 |
|
|
186 |
215 |
/* |
/* |
187 |
|
* Helper function that will do the login and will return the good sid |
|
|
216 |
|
* Helper function that will do the login |
188 |
217 |
*/ |
*/ |
189 |
|
function test_login($url, $rg_ui, &$good_sid) |
|
|
218 |
|
function test_login($url, $rg_ui) |
190 |
219 |
{ |
{ |
191 |
220 |
global $test_ua; |
global $test_ua; |
192 |
221 |
|
|
193 |
222 |
// First we need to load the form so we can get the token |
// First we need to load the form so we can get the token |
194 |
|
// We provide an old cookie to test if we generate a new pre-login one |
|
195 |
223 |
$data = array(); |
$data = array(); |
196 |
|
$headers = array("Cookie: sid=d978671c2cd12fba05be218bb1653c1ce7bfb947"); |
|
197 |
224 |
$r = do_req($url . "/op/login", $data, $headers); |
$r = do_req($url . "/op/login", $data, $headers); |
198 |
225 |
if ($r === FALSE) { |
if ($r === FALSE) { |
199 |
226 |
rg_log('Cannot load login form!'); |
rg_log('Cannot load login form!'); |
200 |
227 |
return FALSE; |
return FALSE; |
201 |
228 |
} |
} |
202 |
|
$good_sid = $r['sid']; |
|
203 |
229 |
if (!isset($r['tokens']['login'])) { |
if (!isset($r['tokens']['login'])) { |
204 |
230 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
205 |
231 |
rg_log('Login token not returned!'); |
rg_log('Login token not returned!'); |
206 |
232 |
return FALSE; |
return FALSE; |
207 |
233 |
} |
} |
208 |
234 |
$good_token = $r['tokens']['login']; |
$good_token = $r['tokens']['login']; |
209 |
|
rg_log("good: sid=$good_sid token=$good_token"); |
|
210 |
|
if (strncmp($good_sid, "X", 1) != 0) { |
|
211 |
|
rg_log("Seems we did not get a pre-login session!"); |
|
212 |
|
return FALSE; |
|
213 |
|
} |
|
214 |
235 |
|
|
215 |
236 |
// Now, post login form |
// Now, post login form |
216 |
237 |
rg_log("Do the real login post request"); |
rg_log("Do the real login post request"); |
|
... |
... |
function test_login($url, $rg_ui, &$good_sid) |
221 |
242 |
"pass" => $rg_ui['pass'], |
"pass" => $rg_ui['pass'], |
222 |
243 |
"lock_ip" => 1 |
"lock_ip" => 1 |
223 |
244 |
); |
); |
224 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
245 |
|
$headers = array(); |
225 |
246 |
$r = do_req($url . "/op/login", $data, $headers); |
$r = do_req($url . "/op/login", $data, $headers); |
226 |
247 |
if ($r === FALSE) { |
if ($r === FALSE) { |
227 |
248 |
rg_log_ml("Cannot login: " . print_r($r, TRUE)); |
rg_log_ml("Cannot login: " . print_r($r, TRUE)); |
228 |
249 |
return FALSE; |
return FALSE; |
229 |
250 |
} |
} |
230 |
|
$good_sid = $r['sid']; |
|
231 |
|
if (empty($good_sid)) { |
|
232 |
|
rg_log('Empty good_sid!'); |
|
233 |
|
return FALSE; |
|
234 |
|
} |
|
235 |
251 |
|
|
236 |
252 |
if (strstr($r['body'], "invalid user")) { |
if (strstr($r['body'], "invalid user")) { |
237 |
253 |
rg_log_ml(print_r($r, TRUE)); |
rg_log_ml(print_r($r, TRUE)); |
File tests/http_create_account.php changed (mode: 100644) (index 590c759..a29ab51) |
... |
... |
$rg_sql = "host=localhost user=rocketgit dbname=rocketgit connect_timeout=10"; |
14 |
14 |
$rg_no_db = TRUE; |
$rg_no_db = TRUE; |
15 |
15 |
require_once("common.php"); |
require_once("common.php"); |
16 |
16 |
|
|
|
17 |
|
$_testns = 'http_create_account'; |
|
18 |
|
|
|
19 |
|
prepare_http(); |
|
20 |
|
|
17 |
21 |
rg_log("Test create account"); |
rg_log("Test create account"); |
18 |
22 |
|
|
19 |
23 |
// First we need to load the form so we can get the token |
// First we need to load the form so we can get the token |
|
... |
... |
if ($r === FALSE) { |
22 |
26 |
rg_log("Cannot load create_account page!"); |
rg_log("Cannot load create_account page!"); |
23 |
27 |
exit(1); |
exit(1); |
24 |
28 |
} |
} |
25 |
|
$good_sid = $r['sid']; |
|
26 |
29 |
$good_token = $r['tokens']['user_edit_hl']; |
$good_token = $r['tokens']['user_edit_hl']; |
27 |
30 |
|
|
28 |
31 |
$uniq = rg_id(16); |
$uniq = rg_id(16); |
|
... |
... |
$data = array( |
41 |
44 |
"plan_id" => 9, |
"plan_id" => 9, |
42 |
45 |
"session_time" => 60 |
"session_time" => 60 |
43 |
46 |
); |
); |
44 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
47 |
|
$headers = array(); |
45 |
48 |
$r = do_req($test_url . "/op/create_account?t=create_account", $data, $headers); |
$r = do_req($test_url . "/op/create_account?t=create_account", $data, $headers); |
46 |
49 |
if (!strstr($r['body'], "without accepting")) { |
if (!strstr($r['body'], "without accepting")) { |
47 |
50 |
rg_log("Seems we could create an account without accepting ToS. Bad!"); |
rg_log("Seems we could create an account without accepting ToS. Bad!"); |
|
... |
... |
if (!strstr($r['body'], "without accepting")) { |
51 |
54 |
rg_log('Adding an account accepting tos...'); |
rg_log('Adding an account accepting tos...'); |
52 |
55 |
$data['token'] = $r['tokens']['user_edit_hl']; |
$data['token'] = $r['tokens']['user_edit_hl']; |
53 |
56 |
$data['tos'] = 1; |
$data['tos'] = 1; |
54 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
57 |
|
$headers = array(); |
55 |
58 |
$r = do_req($test_url . "/op/create_account?t=create_account", $data, $headers); |
$r = do_req($test_url . "/op/create_account?t=create_account", $data, $headers); |
56 |
59 |
if (!strstr($r['body'], "Your account has been successfully created")) { |
if (!strstr($r['body'], "Your account has been successfully created")) { |
57 |
60 |
rg_log_ml('body: ' . print_r($r['body'], TRUE)); |
rg_log_ml('body: ' . print_r($r['body'], TRUE)); |
|
... |
... |
foreach ($data as $k => $v) { |
86 |
89 |
rg_log("Key $k does not match: row=" . $row[$k] . " data=" . $data[$k]); |
rg_log("Key $k does not match: row=" . $row[$k] . " data=" . $data[$k]); |
87 |
90 |
exit(1); |
exit(1); |
88 |
91 |
} |
} |
89 |
|
rg_log("Key $k matches."); |
|
90 |
92 |
} |
} |
91 |
93 |
|
|
92 |
94 |
rg_log("OK!"); |
rg_log("OK!"); |
File tests/http_csrf.php changed (mode: 100644) (index 1c13123..8a07a68) |
... |
... |
require_once("common.php"); |
20 |
20 |
$_testns = 'http_csrf'; |
$_testns = 'http_csrf'; |
21 |
21 |
$rg_cache_enable = TRUE; |
$rg_cache_enable = TRUE; |
22 |
22 |
|
|
|
23 |
|
prepare_http(); |
|
24 |
|
|
23 |
25 |
test_set_ua("user-agent-1"); |
test_set_ua("user-agent-1"); |
24 |
26 |
rg_test_create_user($db, $rg_ui); |
rg_test_create_user($db, $rg_ui); |
25 |
|
$r = test_login($test_url, $rg_ui, $good_sid); |
|
|
27 |
|
$r = test_login($test_url, $rg_ui); |
26 |
28 |
if ($r === FALSE) { |
if ($r === FALSE) { |
27 |
29 |
rg_log("Cannot login!"); |
rg_log("Cannot login!"); |
28 |
30 |
exit(1); |
exit(1); |
|
... |
... |
rg_log_enter("Loading suggestion form (referer test)"); |
32 |
34 |
test_set_ua("user-agent-1"); |
test_set_ua("user-agent-1"); |
33 |
35 |
test_set_referer($test_url); |
test_set_referer($test_url); |
34 |
36 |
$data = array(); |
$data = array(); |
35 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
37 |
|
$headers = array(); |
36 |
38 |
$r = do_req($test_url . "/op/suggestion?t=load_suggestion_form_referer", $data, $headers); |
$r = do_req($test_url . "/op/suggestion?t=load_suggestion_form_referer", $data, $headers); |
37 |
39 |
if (!stristr($r['body'], "action=\"/op/suggestion\"")) { |
if (!stristr($r['body'], "action=\"/op/suggestion\"")) { |
38 |
40 |
rg_log("Cannot load form! See above."); |
rg_log("Cannot load form! See above."); |
|
... |
... |
$data = array( |
50 |
52 |
"token" => $good_token, |
"token" => $good_token, |
51 |
53 |
"suggestion" => "bla bla bla" |
"suggestion" => "bla bla bla" |
52 |
54 |
); |
); |
53 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
55 |
|
$headers = array(); |
54 |
56 |
$r = do_req($test_url . "/op/suggestion?t=post_suggestion_form_diff_referer", $data, $headers); |
$r = do_req($test_url . "/op/suggestion?t=post_suggestion_form_diff_referer", $data, $headers); |
55 |
57 |
if (!stristr($r['body'], "invalid referer")) { |
if (!stristr($r['body'], "invalid referer")) { |
56 |
58 |
rg_log_ml("Seems I could add a suggestion bypassing CSRF" |
rg_log_ml("Seems I could add a suggestion bypassing CSRF" |
|
... |
... |
rg_log_exit(); |
63 |
65 |
rg_log_enter("Testing logout CSRF (wrong token)..."); |
rg_log_enter("Testing logout CSRF (wrong token)..."); |
64 |
66 |
test_set_ua("user-agent-1"); |
test_set_ua("user-agent-1"); |
65 |
67 |
test_set_referer($test_url); |
test_set_referer($test_url); |
66 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
67 |
68 |
$data['token'] = strtoupper($good_token); |
$data['token'] = strtoupper($good_token); |
|
69 |
|
$headers = array(); |
68 |
70 |
$r = do_req($test_url . "/op/logout?t=wrong_token", $data, $headers); |
$r = do_req($test_url . "/op/logout?t=wrong_token", $data, $headers); |
69 |
71 |
if (stristr($r['body'], "You are now logged out")) { |
if (stristr($r['body'], "You are now logged out")) { |
70 |
72 |
rg_log("No error on logout with wrong token?! See above."); |
rg_log("No error on logout with wrong token?! See above."); |
|
... |
... |
if (stristr($r['body'], "You are now logged out")) { |
73 |
75 |
rg_log_exit(); |
rg_log_exit(); |
74 |
76 |
|
|
75 |
77 |
|
|
|
78 |
|
/* TODO setting cookie does not work! |
76 |
79 |
rg_log_enter("Testing logout CSRF (token passed in cookie)..."); |
rg_log_enter("Testing logout CSRF (token passed in cookie)..."); |
77 |
80 |
test_set_ua("user-agent-1"); |
test_set_ua("user-agent-1"); |
78 |
81 |
test_set_referer($test_url); |
test_set_referer($test_url); |
79 |
|
$headers = array("Cookie: sid=" . $good_sid . "; token=" . $good_logout_token); |
|
|
82 |
|
$headers = array('Cookie: token=' . $good_logout_token); |
80 |
83 |
$data = array('doit' => 1); |
$data = array('doit' => 1); |
81 |
84 |
$r = do_req($test_url . "/op/logout?t=token_passed_by_cookie", $data, $headers); |
$r = do_req($test_url . "/op/logout?t=token_passed_by_cookie", $data, $headers); |
82 |
85 |
if (stristr($r['body'], "You are now logged out")) { |
if (stristr($r['body'], "You are now logged out")) { |
|
... |
... |
if (stristr($r['body'], "You are now logged out")) { |
84 |
87 |
exit(1); |
exit(1); |
85 |
88 |
} |
} |
86 |
89 |
rg_log_exit(); |
rg_log_exit(); |
|
90 |
|
*/ |
87 |
91 |
|
|
88 |
92 |
|
|
89 |
93 |
rg_log_enter("Testing logout CSRF (good token)..."); |
rg_log_enter("Testing logout CSRF (good token)..."); |
90 |
94 |
test_set_ua("user-agent-1"); |
test_set_ua("user-agent-1"); |
91 |
95 |
$url = $test_url . "/op/logout?t=good_token&token=" . $good_logout_token; |
$url = $test_url . "/op/logout?t=good_token&token=" . $good_logout_token; |
92 |
|
$data = array(); |
|
|
96 |
|
$data = array(); $headers = array(); |
93 |
97 |
$r = do_req($url, $data, $headers); |
$r = do_req($url, $data, $headers); |
94 |
98 |
if (!stristr($r['body'], "You are now logged out")) { |
if (!stristr($r['body'], "You are now logged out")) { |
95 |
99 |
rg_log("Seems I cannot logout with a good token! See above."); |
rg_log("Seems I cannot logout with a good token! See above."); |
File tests/http_forgot.php changed (mode: 100644) (index 686cf12..43eafb9) |
... |
... |
$rg_cache_debug = TRUE; |
25 |
25 |
|
|
26 |
26 |
$rg_user_max_len = 60; |
$rg_user_max_len = 60; |
27 |
27 |
|
|
|
28 |
|
prepare_http(); |
28 |
29 |
rg_test_create_user($db, $rg_ui); |
rg_test_create_user($db, $rg_ui); |
29 |
30 |
|
|
30 |
31 |
|
|
31 |
32 |
rg_log(''); |
rg_log(''); |
32 |
|
rg_log_enter('Loading forgot pass form...'); |
|
33 |
|
$data = array(); |
|
|
33 |
|
rg_log_enter('Loading forgot_send form...'); |
|
34 |
|
$data = array(); $headers = array(); |
34 |
35 |
$r = do_req($test_url . '/op/forgot_send', $data, $headers); |
$r = do_req($test_url . '/op/forgot_send', $data, $headers); |
35 |
36 |
if ($r === FALSE) { |
if ($r === FALSE) { |
36 |
37 |
rg_log("Cannot load forgot pass page!"); |
rg_log("Cannot load forgot pass page!"); |
37 |
38 |
exit(1); |
exit(1); |
38 |
39 |
} |
} |
39 |
|
rg_log('Posting the forgot pass form...'); |
|
|
40 |
|
rg_log('Posting the forgot_send form...'); |
40 |
41 |
$data = array( |
$data = array( |
41 |
42 |
'email' => $rg_ui['email'], |
'email' => $rg_ui['email'], |
42 |
43 |
'doit' => 1 |
'doit' => 1 |
43 |
44 |
); |
); |
|
45 |
|
$headers = array(); |
44 |
46 |
$r = do_req($test_url . '/op/forgot_send', $data, $headers); |
$r = do_req($test_url . '/op/forgot_send', $data, $headers); |
45 |
47 |
if (!strstr($r['body'], 'your inbox and follow the instructions')) { |
if (!strstr($r['body'], 'your inbox and follow the instructions')) { |
46 |
48 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
rg_log_exit(); |
64 |
66 |
|
|
65 |
67 |
rg_log(''); |
rg_log(''); |
66 |
68 |
rg_log_enter('Loading token from mail...'); |
rg_log_enter('Loading token from mail...'); |
67 |
|
$k = 'DEBUG::0::mail'; |
|
68 |
|
$c = rg_cache_get($k); |
|
|
69 |
|
$k = 'DEBUG::0::mail::mail/user/forgot/recover'; |
|
70 |
|
$tries = 10; |
|
71 |
|
while ($tries-- > 0) { |
|
72 |
|
$c = rg_cache_get($k); |
|
73 |
|
if ($c !== FALSE) |
|
74 |
|
break; |
|
75 |
|
sleep(1); |
|
76 |
|
} |
69 |
77 |
if (($c === FALSE) || !isset($c['body'])) { |
if (($c === FALSE) || !isset($c['body'])) { |
70 |
78 |
rg_log_ml(print_r($c, TRUE)); |
rg_log_ml(print_r($c, TRUE)); |
71 |
79 |
rg_log('No c or no body in c var!'); |
rg_log('No c or no body in c var!'); |
|
... |
... |
if (strcmp($db_token, $s) != 0) { |
87 |
95 |
// we add junk because I've seen cases when some junk was appended |
// we add junk because I've seen cases when some junk was appended |
88 |
96 |
$s .= 'junk'; |
$s .= 'junk'; |
89 |
97 |
|
|
90 |
|
$data = array(); |
|
|
98 |
|
rg_log('Loading the forgot link form...'); |
|
99 |
|
$data = array(); $headers = array(); |
91 |
100 |
$r = do_req($test_url . '/op/forgot_link/' . $s, $data, $headers); |
$r = do_req($test_url . '/op/forgot_link/' . $s, $data, $headers); |
92 |
101 |
if ($r === FALSE) { |
if ($r === FALSE) { |
93 |
102 |
rg_log("Cannot load forgot_link page!"); |
rg_log("Cannot load forgot_link page!"); |
|
... |
... |
$data = array( |
103 |
112 |
'lock_ip' => 1, |
'lock_ip' => 1, |
104 |
113 |
'doit' => 1 |
'doit' => 1 |
105 |
114 |
); |
); |
|
115 |
|
$headers = array(); |
106 |
116 |
$r = do_req($test_url . '/op/forgot_link', $data, $headers); |
$r = do_req($test_url . '/op/forgot_link', $data, $headers); |
107 |
117 |
if (!strstr($r['body'], 'Home page of user')) { |
if (!strstr($r['body'], 'Home page of user')) { |
108 |
118 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
109 |
|
rg_log('Cannot post forgot link form!'); |
|
|
119 |
|
rg_log('Cannot post forgot link form' |
|
120 |
|
. ' ("Home page of user" string not found)!'); |
110 |
121 |
exit(1); |
exit(1); |
111 |
122 |
} |
} |
112 |
123 |
$sql = 'SELECT salt, pass FROM users WHERE uid = ' . $rg_ui['uid']; |
$sql = 'SELECT salt, pass FROM users WHERE uid = ' . $rg_ui['uid']; |
File tests/http_login.php changed (mode: 100644) (index 2d74e60..ed98c6c) |
... |
... |
require_once("common.php"); |
18 |
18 |
$_testns = 'http_login'; |
$_testns = 'http_login'; |
19 |
19 |
$rg_cache_enable = TRUE; |
$rg_cache_enable = TRUE; |
20 |
20 |
|
|
|
21 |
|
prepare_http(); |
|
22 |
|
|
21 |
23 |
rg_test_create_user($db, $rg_ui); |
rg_test_create_user($db, $rg_ui); |
22 |
24 |
|
|
|
25 |
|
$good_guy = $_testns . '-good'; |
|
26 |
|
$bad_guy = $_testns . '-bad'; |
|
27 |
|
|
23 |
28 |
rg_log("Test login operation"); |
rg_log("Test login operation"); |
24 |
29 |
// First we need to load the form so we can get the token |
// First we need to load the form so we can get the token |
25 |
|
// We provide an old cookie to test if we generate a new pre-login one |
|
|
30 |
|
// We provide junk cookies to test if we generate a new pre-login one |
26 |
31 |
$data = array(); |
$data = array(); |
27 |
|
$headers = array("Cookie: sid=d978671c2cd12fba05be218bb1653c1ce7bfb947"); |
|
|
32 |
|
$headers = array(); |
|
33 |
|
$http_client = $good_guy; |
28 |
34 |
$r = do_req($test_url . "/op/login", $data, $headers); |
$r = do_req($test_url . "/op/login", $data, $headers); |
29 |
35 |
if ($r === FALSE) { |
if ($r === FALSE) { |
30 |
36 |
rg_log("Cannot load login form."); |
rg_log("Cannot load login form."); |
|
... |
... |
if ($r === FALSE) { |
32 |
38 |
} |
} |
33 |
39 |
$good_sid = $r['sid']; |
$good_sid = $r['sid']; |
34 |
40 |
$good_token = $r['tokens']['login']; |
$good_token = $r['tokens']['login']; |
35 |
|
rg_log("good: sid=$good_sid token=$good_token"); |
|
36 |
|
if (strncmp($good_sid, "X", 1) != 0) { |
|
37 |
|
rg_log("Seems we did not get a pre-login session!"); |
|
|
41 |
|
rg_log("good: token=$good_token"); |
|
42 |
|
if (strncmp($r['sid'], 'X', 1) != 0) { |
|
43 |
|
rg_log('Seems we did not get a pre-login session!'); |
38 |
44 |
exit(1); |
exit(1); |
39 |
45 |
} |
} |
40 |
46 |
|
|
41 |
47 |
|
|
42 |
|
rg_log("Sending wrong token, because bad guy cannot control it"); |
|
43 |
|
// we need a valid token, so we do a new request |
|
|
48 |
|
// we need a valid token of the attacker, so we do a new request |
44 |
49 |
$data = array(); |
$data = array(); |
45 |
50 |
$headers = array(); |
$headers = array(); |
|
51 |
|
$http_client = $bad_guy; |
46 |
52 |
$r = do_req($test_url . "/op/login", $data, $headers); |
$r = do_req($test_url . "/op/login", $data, $headers); |
47 |
53 |
if ($r === FALSE) { |
if ($r === FALSE) { |
48 |
54 |
rg_log("Cannot load login form."); |
rg_log("Cannot load login form."); |
49 |
55 |
exit(1); |
exit(1); |
50 |
56 |
} |
} |
51 |
|
//rg_log_ml("After loading attacker login form, r: " . print_r($r, TRUE)); |
|
52 |
|
$bad_sid = $r['sid']; |
|
53 |
57 |
$bad_token = $r['tokens']['login']; |
$bad_token = $r['tokens']['login']; |
54 |
|
rg_log("bad: sid=$bad_sid token=$bad_token"); |
|
|
58 |
|
rg_log("bad_token=$bad_token"); |
55 |
59 |
|
|
56 |
|
rg_log("Now we can attack, we use attacker token but user cookie..."); |
|
|
60 |
|
rg_log("Now we can attack, we use attacker token but good cookie..."); |
|
61 |
|
rg_log("Sending wrong token, because bad guy cannot control it"); |
57 |
62 |
$data = array( |
$data = array( |
58 |
63 |
"doit" => 1, |
"doit" => 1, |
59 |
64 |
"token" => $bad_token, |
"token" => $bad_token, |
|
... |
... |
$data = array( |
61 |
66 |
"pass" => $rg_ui['pass'], |
"pass" => $rg_ui['pass'], |
62 |
67 |
"lock_ip" => 1 |
"lock_ip" => 1 |
63 |
68 |
); |
); |
64 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
69 |
|
$headers = array(); |
|
70 |
|
$http_client = $good_guy; |
65 |
71 |
$r = do_req($test_url . "/op/login?t=bad_token_good_sid", $data, $headers); |
$r = do_req($test_url . "/op/login?t=bad_token_good_sid", $data, $headers); |
66 |
72 |
if ($r === FALSE) { |
if ($r === FALSE) { |
67 |
73 |
rg_log_ml(print_r($r, TRUE)); |
rg_log_ml(print_r($r, TRUE)); |
|
... |
... |
if (!strstr($r['body'], "invalid token")) { |
74 |
80 |
exit(1); |
exit(1); |
75 |
81 |
} |
} |
76 |
82 |
|
|
77 |
|
rg_log("Do the real login post request"); |
|
|
83 |
|
rg_log("Do the good login post request"); |
78 |
84 |
$data = array( |
$data = array( |
79 |
85 |
"doit" => 1, |
"doit" => 1, |
80 |
86 |
"token" => $good_token, |
"token" => $good_token, |
|
... |
... |
$data = array( |
82 |
88 |
"pass" => $rg_ui['pass'], |
"pass" => $rg_ui['pass'], |
83 |
89 |
"lock_ip" => 1 |
"lock_ip" => 1 |
84 |
90 |
); |
); |
85 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
91 |
|
$headers = array(); |
|
92 |
|
$http_client = $good_guy; |
86 |
93 |
$r = do_req($test_url . "/op/login?t=good_sid_good_token", $data, $headers); |
$r = do_req($test_url . "/op/login?t=good_sid_good_token", $data, $headers); |
87 |
94 |
if ($r === FALSE) { |
if ($r === FALSE) { |
88 |
95 |
rg_log_ml("Cannot login: " . print_r($r, TRUE)); |
rg_log_ml("Cannot login: " . print_r($r, TRUE)); |
|
... |
... |
if (strstr($r['body'], "invalid user")) { |
95 |
102 |
} |
} |
96 |
103 |
|
|
97 |
104 |
rg_log("Check what happens if we are logged in and want to login again"); |
rg_log("Check what happens if we are logged in and want to login again"); |
98 |
|
$r = test_login($test_url, $rg_ui, $good_sid); |
|
|
105 |
|
$r = test_login($test_url, $rg_ui); |
99 |
106 |
if ($r === FALSE) { |
if ($r === FALSE) { |
100 |
107 |
rg_log_ml(print_r($r, TRUE)); |
rg_log_ml(print_r($r, TRUE)); |
101 |
108 |
rg_log("Seems we cannot login again if we are already logged in!"); |
rg_log("Seems we cannot login again if we are already logged in!"); |
File tests/http_settings.php changed (mode: 100644) (index e4aae6e..c9f3806) |
... |
... |
require_once("common.php"); |
20 |
20 |
$_testns = 'http_settings'; |
$_testns = 'http_settings'; |
21 |
21 |
$rg_cache_enable = TRUE; |
$rg_cache_enable = TRUE; |
22 |
22 |
|
|
|
23 |
|
prepare_http(); |
|
24 |
|
|
23 |
25 |
$now = time(); |
$now = time(); |
24 |
26 |
|
|
25 |
27 |
rg_log("Testing if caching works: cache_enable=" . ($rg_cache_enable ? "true" : "false")); |
rg_log("Testing if caching works: cache_enable=" . ($rg_cache_enable ? "true" : "false")); |
|
... |
... |
if ($r !== FALSE) { |
41 |
43 |
test_restore($db); |
test_restore($db); |
42 |
44 |
|
|
43 |
45 |
rg_test_create_user($db, $rg_ui); |
rg_test_create_user($db, $rg_ui); |
44 |
|
$r = test_login($test_url, $rg_ui, $good_sid); |
|
|
46 |
|
$r = test_login($test_url, $rg_ui); |
45 |
47 |
if ($r === FALSE) { |
if ($r === FALSE) { |
46 |
48 |
rg_log("Cannot login!"); |
rg_log("Cannot login!"); |
47 |
49 |
exit(1); |
exit(1); |
|
... |
... |
if ($r === FALSE) { |
50 |
52 |
rg_log(''); |
rg_log(''); |
51 |
53 |
rg_log("Loading change pass form"); |
rg_log("Loading change pass form"); |
52 |
54 |
$data = array(); |
$data = array(); |
53 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
55 |
|
$headers = array(); |
54 |
56 |
$r = do_req($test_url . "/op/settings/change_pass?t=load_change_pass_form", $data, $headers); |
$r = do_req($test_url . "/op/settings/change_pass?t=load_change_pass_form", $data, $headers); |
55 |
57 |
if (!strstr($r['body'], "action=\"/op/settings/change_pass\"")) { |
if (!strstr($r['body'], "action=\"/op/settings/change_pass\"")) { |
56 |
58 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
$data = array( |
68 |
70 |
"pass1" => "bbbb", |
"pass1" => "bbbb", |
69 |
71 |
"pass2" => "bbbb" |
"pass2" => "bbbb" |
70 |
72 |
); |
); |
71 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
73 |
|
$headers = array(); |
72 |
74 |
$r = do_req($test_url . "/op/settings/change_pass?t=post_change_pass_form", $data, $headers); |
$r = do_req($test_url . "/op/settings/change_pass?t=post_change_pass_form", $data, $headers); |
73 |
75 |
if (!strstr($r['body'], "Password has been successfully updated")) { |
if (!strstr($r['body'], "Password has been successfully updated")) { |
74 |
76 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
if (!strstr($r['body'], "Password has been successfully updated")) { |
79 |
81 |
|
|
80 |
82 |
rg_log(''); |
rg_log(''); |
81 |
83 |
rg_log("Now, try to login with the old password"); |
rg_log("Now, try to login with the old password"); |
82 |
|
$r2 = test_login($test_url, $rg_ui, $junk); |
|
|
84 |
|
$r2 = test_login($test_url, $rg_ui); |
83 |
85 |
if ($r2 !== FALSE) { |
if ($r2 !== FALSE) { |
84 |
86 |
rg_log("Seems we were able to login with the old password!"); |
rg_log("Seems we were able to login with the old password!"); |
85 |
87 |
exit(1); |
exit(1); |
|
... |
... |
if ($r2 !== FALSE) { |
90 |
92 |
rg_log(''); |
rg_log(''); |
91 |
93 |
rg_log("Change back the password"); |
rg_log("Change back the password"); |
92 |
94 |
$data = array(); |
$data = array(); |
93 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
95 |
|
$headers = array(); |
94 |
96 |
$r = do_req($test_url . "/op/settings/change_pass?t=load_change_pass_form", $data, $headers); |
$r = do_req($test_url . "/op/settings/change_pass?t=load_change_pass_form", $data, $headers); |
95 |
97 |
if (!strstr($r['body'], "action=\"/op/settings/change_pass\"")) { |
if (!strstr($r['body'], "action=\"/op/settings/change_pass\"")) { |
96 |
98 |
rg_log("Cannot load change pass form!"); |
rg_log("Cannot load change pass form!"); |
|
... |
... |
$data = array( |
104 |
106 |
"pass1" => $rg_ui['pass'], |
"pass1" => $rg_ui['pass'], |
105 |
107 |
"pass2" => $rg_ui['pass'] |
"pass2" => $rg_ui['pass'] |
106 |
108 |
); |
); |
107 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
109 |
|
$headers = array(); |
108 |
110 |
$r = do_req($test_url . "/op/settings/change_pass?t=change_back_the_password", $data, $headers); |
$r = do_req($test_url . "/op/settings/change_pass?t=change_back_the_password", $data, $headers); |
109 |
111 |
if ($r === FALSE) { |
if ($r === FALSE) { |
110 |
112 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
rg_log("Testing edit info section"); |
119 |
121 |
rg_log(''); |
rg_log(''); |
120 |
122 |
rg_log("Loading edit info form"); |
rg_log("Loading edit info form"); |
121 |
123 |
$data = array(); |
$data = array(); |
122 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
124 |
|
$headers = array(); |
123 |
125 |
$r = do_req($test_url . "/op/settings/edit_info?t=load_edit_info_form", $data, $headers); |
$r = do_req($test_url . "/op/settings/edit_info?t=load_edit_info_form", $data, $headers); |
124 |
126 |
if ($r === FALSE) { |
if ($r === FALSE) { |
125 |
127 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
$data = array( |
139 |
141 |
"plan_id" => 5, |
"plan_id" => 5, |
140 |
142 |
"session_time" => $session_time |
"session_time" => $session_time |
141 |
143 |
); |
); |
142 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
144 |
|
$headers = array(); |
143 |
145 |
$r = do_req($test_url . "/op/settings/edit_info?t=post_edit_info_form", $data, $headers); |
$r = do_req($test_url . "/op/settings/edit_info?t=post_edit_info_form", $data, $headers); |
144 |
146 |
if (!strstr($r['body'], "Information has been successfully updated")) { |
if (!strstr($r['body'], "Information has been successfully updated")) { |
145 |
147 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
if ($row['session_time'] != $session_time) { |
172 |
174 |
|
|
173 |
175 |
rg_log(''); |
rg_log(''); |
174 |
176 |
rg_log("Testing SSH keys"); |
rg_log("Testing SSH keys"); |
175 |
|
$key = rg_test_upload_ssh_key($db, $rg_ui, "http_settings", $good_sid); |
|
|
177 |
|
$key = rg_test_upload_ssh_key($db, $rg_ui, 'http_settings'); |
176 |
178 |
$key = trim($key); |
$key = trim($key); |
177 |
179 |
// the key upload stuff will change < and > to empty. |
// the key upload stuff will change < and > to empty. |
178 |
180 |
$sql = "SELECT * FROM keys WHERE key = '" . $key . "'"; |
$sql = "SELECT * FROM keys WHERE key = '" . $key . "'"; |
|
... |
... |
rg_log(''); |
192 |
194 |
rg_log("Now, testing deletion: key_id=$key_id"); |
rg_log("Now, testing deletion: key_id=$key_id"); |
193 |
195 |
rg_log("Loading ssh keys form"); |
rg_log("Loading ssh keys form"); |
194 |
196 |
$data = array(); |
$data = array(); |
195 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
197 |
|
$headers = array(); |
196 |
198 |
$r = do_req($test_url . "/op/settings/keys?t=load_key_form_del", $data, $headers); |
$r = do_req($test_url . "/op/settings/keys?t=load_key_form_del", $data, $headers); |
197 |
199 |
if ($r === FALSE) { |
if ($r === FALSE) { |
198 |
200 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
if ($r === FALSE) { |
201 |
203 |
} |
} |
202 |
204 |
rg_log("Posting delete keys form"); |
rg_log("Posting delete keys form"); |
203 |
205 |
$data = array("delete" => 1, "token" => $r['tokens']['keys'], "key_delete_ids[$key_id]" => "on"); |
$data = array("delete" => 1, "token" => $r['tokens']['keys'], "key_delete_ids[$key_id]" => "on"); |
204 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
206 |
|
$headers = array(); |
205 |
207 |
$r = do_req($test_url . "/op/settings/keys?t=post_key_form_del", $data, $headers); |
$r = do_req($test_url . "/op/settings/keys?t=post_key_form_del", $data, $headers); |
206 |
208 |
if (!strstr($r['body'], "success")) { |
if (!strstr($r['body'], "success")) { |
207 |
209 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
File tests/http_totp.php changed (mode: 100644) (index e8a753d..0f3e0b2) |
... |
... |
$rg_cache_debug = TRUE; |
25 |
25 |
|
|
26 |
26 |
$rg_user_max_len = 60; |
$rg_user_max_len = 60; |
27 |
27 |
|
|
|
28 |
|
prepare_http(); |
|
29 |
|
|
28 |
30 |
rg_test_create_user($db, $rg_ui); |
rg_test_create_user($db, $rg_ui); |
29 |
31 |
|
|
30 |
32 |
// Add an totp token to this account |
// Add an totp token to this account |
|
... |
... |
if ($r === FALSE) { |
48 |
50 |
rg_log("Cannot load login form."); |
rg_log("Cannot load login form."); |
49 |
51 |
exit(1); |
exit(1); |
50 |
52 |
} |
} |
51 |
|
$good_sid = $r['sid']; |
|
52 |
53 |
$good_token = $r['tokens']['login']; |
$good_token = $r['tokens']['login']; |
53 |
54 |
rg_log_exit(); |
rg_log_exit(); |
54 |
55 |
|
|
55 |
56 |
|
|
56 |
57 |
rg_log(''); |
rg_log(''); |
57 |
|
rg_log_enter("Do the login without login token (sid=$good_sid token=$good_token)..."); |
|
|
58 |
|
rg_log_enter("Do the login without login token (token=$good_token)..."); |
58 |
59 |
$data = array( |
$data = array( |
59 |
60 |
"doit" => 1, |
"doit" => 1, |
60 |
61 |
"token" => $good_token, |
"token" => $good_token, |
|
... |
... |
$data = array( |
62 |
63 |
"pass" => $rg_ui['pass'], |
"pass" => $rg_ui['pass'], |
63 |
64 |
"login_token" => '', |
"login_token" => '', |
64 |
65 |
"lock_ip" => 0); |
"lock_ip" => 0); |
65 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
66 |
|
$headers = array(); |
66 |
67 |
$r = do_req($test_url . "/op/login", $data, $headers); |
$r = do_req($test_url . "/op/login", $data, $headers); |
67 |
68 |
if ($r === FALSE) { |
if ($r === FALSE) { |
68 |
69 |
rg_log_ml('r=' . print_r($r, TRUE)); |
rg_log_ml('r=' . print_r($r, TRUE)); |
|
... |
... |
rg_log_exit(); |
79 |
80 |
|
|
80 |
81 |
|
|
81 |
82 |
rg_log(''); |
rg_log(''); |
82 |
|
rg_log_enter("Do the login (sid=$good_sid token=$good_token" |
|
83 |
|
. " login_token=$lt)..."); |
|
|
83 |
|
rg_log_enter("Do the login (token=$good_token login_token=$lt)..."); |
84 |
84 |
$data = array( |
$data = array( |
85 |
85 |
"doit" => 1, |
"doit" => 1, |
86 |
86 |
"token" => $good_token, |
"token" => $good_token, |
|
... |
... |
$data = array( |
88 |
88 |
"pass" => $rg_ui['pass'], |
"pass" => $rg_ui['pass'], |
89 |
89 |
"login_token" => $lt, |
"login_token" => $lt, |
90 |
90 |
"lock_ip" => 0); |
"lock_ip" => 0); |
91 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
91 |
|
$headers = array(); |
92 |
92 |
$r = do_req($test_url . "/op/login", $data, $headers); |
$r = do_req($test_url . "/op/login", $data, $headers); |
93 |
93 |
if ($r === FALSE) { |
if ($r === FALSE) { |
94 |
94 |
rg_log_ml('r=' . print_r($r, TRUE)); |
rg_log_ml('r=' . print_r($r, TRUE)); |
|
... |
... |
if (strstr($r['body'], "invalid user")) { |
100 |
100 |
rg_log("Login invalid!"); |
rg_log("Login invalid!"); |
101 |
101 |
exit(1); |
exit(1); |
102 |
102 |
} |
} |
103 |
|
$good_sid = $r['sid']; |
|
104 |
103 |
rg_log_exit(); |
rg_log_exit(); |
105 |
104 |
|
|
106 |
105 |
|
|
|
... |
... |
rg_log(''); |
108 |
107 |
rg_log_enter('Testing device enrollment...'); |
rg_log_enter('Testing device enrollment...'); |
109 |
108 |
rg_log('Loading enroll form...'); |
rg_log('Loading enroll form...'); |
110 |
109 |
$data = array(); |
$data = array(); |
111 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
110 |
|
$headers = array(); |
112 |
111 |
$r = do_req($test_url . "/op/settings/totp/enroll", $data, $headers); |
$r = do_req($test_url . "/op/settings/totp/enroll", $data, $headers); |
113 |
112 |
if ($r === FALSE) { |
if ($r === FALSE) { |
114 |
113 |
rg_log("Cannot load enroll page!"); |
rg_log("Cannot load enroll page!"); |
|
... |
... |
$data = array( |
129 |
128 |
'totp::secret' => $key, |
'totp::secret' => $key, |
130 |
129 |
'totp::ver' => rg_totp_compute($key, time() / 30, 6) |
'totp::ver' => rg_totp_compute($key, time() / 30, 6) |
131 |
130 |
); |
); |
132 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
131 |
|
$headers = array(); |
133 |
132 |
$r = do_req($test_url . "/op/settings/totp/enroll", $data, $headers); |
$r = do_req($test_url . "/op/settings/totp/enroll", $data, $headers); |
134 |
133 |
if (!strstr($r['body'], 'You enrolled your new device with success')) { |
if (!strstr($r['body'], 'You enrolled your new device with success')) { |
135 |
134 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
rg_log_exit(); |
149 |
148 |
|
|
150 |
149 |
rg_log(''); |
rg_log(''); |
151 |
150 |
rg_log_enter('Testing the deletion of scratch codes'); |
rg_log_enter('Testing the deletion of scratch codes'); |
152 |
|
$sc1 = rg_test_sc_generate($db, $rg_ui, $good_sid); |
|
|
151 |
|
$sc1 = rg_test_sc_generate($db, $rg_ui); |
153 |
152 |
sleep(1); // to not have the same itime |
sleep(1); // to not have the same itime |
154 |
|
$sc2 = rg_test_sc_generate($db, $rg_ui, $good_sid); |
|
|
153 |
|
$sc2 = rg_test_sc_generate($db, $rg_ui); |
155 |
154 |
$sql = "SELECT DISTINCT itime FROM scratch_codes WHERE uid = " . $rg_ui['uid']; |
$sql = "SELECT DISTINCT itime FROM scratch_codes WHERE uid = " . $rg_ui['uid']; |
156 |
155 |
$res = rg_sql_query($db, $sql); |
$res = rg_sql_query($db, $sql); |
157 |
156 |
$list = array(); |
$list = array(); |
|
... |
... |
while (($row = rg_sql_fetch_array($res))) { |
161 |
160 |
rg_sql_free_result($res); |
rg_sql_free_result($res); |
162 |
161 |
rg_log_ml('list=' . print_r($list, TRUE)); |
rg_log_ml('list=' . print_r($list, TRUE)); |
163 |
162 |
|
|
164 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
163 |
|
$headers = array(); |
165 |
164 |
$r = do_req($test_url . "/op/settings/totp/sc", $data, $headers); |
$r = do_req($test_url . "/op/settings/totp/sc", $data, $headers); |
166 |
165 |
if ($r === FALSE) { |
if ($r === FALSE) { |
167 |
166 |
rg_log("Cannot load sc page!"); |
rg_log("Cannot load sc page!"); |
|
... |
... |
$data = array( |
175 |
174 |
'delete_list[' . $list[0] . ']' => 'on', |
'delete_list[' . $list[0] . ']' => 'on', |
176 |
175 |
'delete_list[' . $list[1] . ']' => 'on' |
'delete_list[' . $list[1] . ']' => 'on' |
177 |
176 |
); |
); |
178 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
177 |
|
$headers = array(); |
179 |
178 |
$r = do_req($test_url . "/op/settings/totp/sc", $data, $headers); |
$r = do_req($test_url . "/op/settings/totp/sc", $data, $headers); |
180 |
179 |
if (!strstr($r['body'], 'success')) { |
if (!strstr($r['body'], 'success')) { |
181 |
180 |
rg_log("Cannot delete scratch codes!"); |
rg_log("Cannot delete scratch codes!"); |
|
... |
... |
$good_token = $r['tokens']['login_tokens_list']; |
238 |
237 |
$data = array( 'delete' => 1, 'token' => $good_token); |
$data = array( 'delete' => 1, 'token' => $good_token); |
239 |
238 |
foreach ($list as $id) |
foreach ($list as $id) |
240 |
239 |
$data['delete_list[' . $id . ']'] = 'on'; |
$data['delete_list[' . $id . ']'] = 'on'; |
241 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
240 |
|
$headers = array(); |
242 |
241 |
$r = do_req($test_url . "/op/settings/totp/list", $data, $headers); |
$r = do_req($test_url . "/op/settings/totp/list", $data, $headers); |
243 |
242 |
if (!strstr($r['body'], 'success')) { |
if (!strstr($r['body'], 'success')) { |
244 |
243 |
rg_log("Cannot delete login tokens!"); |
rg_log("Cannot delete login tokens!"); |
File tests/pr_anon.php changed (mode: 100644) (index 488524d..9fb00f8) |
... |
... |
$rg_cache_enable = TRUE; |
23 |
23 |
$rg_cache_debug = TRUE; |
$rg_cache_debug = TRUE; |
24 |
24 |
$rg_event_socket = "/var/lib/rocketgit/sockets/event.sock"; |
$rg_event_socket = "/var/lib/rocketgit/sockets/event.sock"; |
25 |
25 |
|
|
|
26 |
|
prepare_http(); |
26 |
27 |
|
|
27 |
28 |
rg_log(''); |
rg_log(''); |
28 |
29 |
rg_log_enter('Creating user...'); |
rg_log_enter('Creating user...'); |
|
... |
... |
rg_log_exit(); |
32 |
33 |
|
|
33 |
34 |
rg_log(''); |
rg_log(''); |
34 |
35 |
rg_log_enter('Login...'); |
rg_log_enter('Login...'); |
35 |
|
$r = test_login($test_url, $rg_ui, $good_sid); |
|
|
36 |
|
$r = test_login($test_url, $rg_ui); |
36 |
37 |
if ($r === FALSE) { |
if ($r === FALSE) { |
37 |
38 |
rg_log("Cannot login!"); |
rg_log("Cannot login!"); |
38 |
39 |
exit(1); |
exit(1); |
|
... |
... |
rg_log_exit(); |
42 |
43 |
|
|
43 |
44 |
rg_log(''); |
rg_log(''); |
44 |
45 |
rg_log_enter('Creating and upload a ssh key...'); |
rg_log_enter('Creating and upload a ssh key...'); |
45 |
|
rg_test_upload_ssh_key($db, $rg_ui, 'pr_anon', $good_sid); |
|
|
46 |
|
rg_test_upload_ssh_key($db, $rg_ui, 'pr_anon'); |
46 |
47 |
rg_log_exit(); |
rg_log_exit(); |
47 |
48 |
|
|
48 |
49 |
|
|
|
... |
... |
rg_log_exit(); |
145 |
146 |
rg_log(''); |
rg_log(''); |
146 |
147 |
rg_log_enter('Loading the merge requests page - just to see it appears there'); |
rg_log_enter('Loading the merge requests page - just to see it appears there'); |
147 |
148 |
$data = array(); |
$data = array(); |
148 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
149 |
|
$headers = array(); |
149 |
150 |
$r = do_req($test_url . '/user/' . $rg_ui['username'] |
$r = do_req($test_url . '/user/' . $rg_ui['username'] |
150 |
151 |
. '/' . $repo['name'] . '/mr?t=pr_anon', $data, $headers); |
. '/' . $repo['name'] . '/mr?t=pr_anon', $data, $headers); |
151 |
152 |
if (!strstr($r['body'], '>' . $mri['id'] . '<')) { |
if (!strstr($r['body'], '>' . $mri['id'] . '<')) { |
|
... |
... |
rg_log_exit(); |
159 |
160 |
rg_log(''); |
rg_log(''); |
160 |
161 |
rg_log_enter('Loading the merge request specific page'); |
rg_log_enter('Loading the merge request specific page'); |
161 |
162 |
$data = array(); |
$data = array(); |
162 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
163 |
|
$headers = array(); |
163 |
164 |
$r = do_req($test_url . $url . $mri['id'] . '?t=pr_anon', $data, $headers); |
$r = do_req($test_url . $url . $mri['id'] . '?t=pr_anon', $data, $headers); |
164 |
165 |
if (!strstr($r['body'], 'This pull request can be merged without conflicts')) { |
if (!strstr($r['body'], 'This pull request can be merged without conflicts')) { |
165 |
166 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
if ($r['ok'] != 1) { |
225 |
226 |
} |
} |
226 |
227 |
$mri = rg_test_mr_in_db($db, $repo['repo_id']); |
$mri = rg_test_mr_in_db($db, $repo['repo_id']); |
227 |
228 |
$data = array(); |
$data = array(); |
228 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
229 |
|
$headers = array(); |
229 |
230 |
$r = do_req($test_url . $url . $mri['id'] . '?t=pr_anon', $data, $headers); |
$r = do_req($test_url . $url . $mri['id'] . '?t=pr_anon', $data, $headers); |
230 |
231 |
if (!strstr($r['body'], 'This pull request cannot be merged without conflicts')) { |
if (!strstr($r['body'], 'This pull request cannot be merged without conflicts')) { |
231 |
232 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
|
... |
... |
rg_log_exit(); |
238 |
239 |
rg_log(''); |
rg_log(''); |
239 |
240 |
rg_log_enter('Loading conflicts page...'); |
rg_log_enter('Loading conflicts page...'); |
240 |
241 |
$data = array(); |
$data = array(); |
241 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
242 |
|
$headers = array(); |
242 |
243 |
$r = do_req($test_url . $url . $mri['id'] . '?t=pr_anon', $data, $headers); |
$r = do_req($test_url . $url . $mri['id'] . '?t=pr_anon', $data, $headers); |
243 |
244 |
if (!strstr($r['body'], 'Conflicts:')) { |
if (!strstr($r['body'], 'Conflicts:')) { |
244 |
245 |
rg_log_ml('r: ' . print_r($r, TRUE)); |
rg_log_ml('r: ' . print_r($r, TRUE)); |
File tests/ssh.php changed (mode: 100644) (index ec2a99a..5f90361) |
... |
... |
$rg_cache_enable = TRUE; |
20 |
20 |
$rg_cache_debug = TRUE; |
$rg_cache_debug = TRUE; |
21 |
21 |
$rg_event_socket = "/var/lib/rocketgit/sockets/event.sock"; |
$rg_event_socket = "/var/lib/rocketgit/sockets/event.sock"; |
22 |
22 |
|
|
|
23 |
|
prepare_http(); |
|
24 |
|
|
23 |
25 |
// This test makes sense only on my devel machine |
// This test makes sense only on my devel machine |
24 |
26 |
if (php_uname("n") != "r1.embedromix.ro") { |
if (php_uname("n") != "r1.embedromix.ro") { |
|
27 |
|
// TODO: start a sshd daemon? |
25 |
28 |
rg_log("OK!"); |
rg_log("OK!"); |
26 |
29 |
exit(0); |
exit(0); |
27 |
30 |
} |
} |
|
... |
... |
if (php_uname("n") != "r1.embedromix.ro") { |
30 |
33 |
rg_log("Creating a user..."); |
rg_log("Creating a user..."); |
31 |
34 |
rg_test_create_user($db, $rg_ui); |
rg_test_create_user($db, $rg_ui); |
32 |
35 |
rg_test_create_repo($db, $rg_ui, $repo); |
rg_test_create_repo($db, $rg_ui, $repo); |
33 |
|
$r = test_login($test_url, $rg_ui, $good_sid); |
|
|
36 |
|
$r = test_login($test_url, $rg_ui); |
34 |
37 |
if ($r === FALSE) { |
if ($r === FALSE) { |
35 |
38 |
rg_log("Cannot login!"); |
rg_log("Cannot login!"); |
36 |
39 |
exit(1); |
exit(1); |
37 |
40 |
} |
} |
38 |
41 |
|
|
39 |
|
$cmd = "ssh -i keys/" . $rg_ui['uid'] . " rocketgit@rg" . " -p 2222"; |
|
|
42 |
|
$cmd = 'ssh -i keys/' . $rg_ui['uid'] . ' rocketgit@' . $rg_ssh_host |
|
43 |
|
. ' -p ' . $rg_ssh_port; |
40 |
44 |
|
|
41 |
|
rg_test_upload_ssh_key($db, $rg_ui, $rg_ui['uid'], $good_sid); |
|
|
45 |
|
rg_test_upload_ssh_key($db, $rg_ui, $rg_ui['uid']); |
42 |
46 |
|
|
43 |
47 |
rg_log(''); |
rg_log(''); |
44 |
48 |
$list = array('', 'status', 'repos', 'repo', 'totp'); |
$list = array('', 'status', 'repos', 'repo', 'totp'); |
|
... |
... |
if (!strstr($r['data'], 'Success!')) { |
201 |
205 |
} |
} |
202 |
206 |
|
|
203 |
207 |
|
|
204 |
|
$sc = rg_test_sc_generate($db, $rg_ui, $good_sid); |
|
|
208 |
|
$sc = rg_test_sc_generate($db, $rg_ui); |
205 |
209 |
$sql = "UPDATE scratch_codes SET sc = '0' || substring(sc from 1 for 7)" |
$sql = "UPDATE scratch_codes SET sc = '0' || substring(sc from 1 for 7)" |
206 |
210 |
. " WHERE uid = " . $rg_ui['uid']; |
. " WHERE uid = " . $rg_ui['uid']; |
207 |
211 |
$res = rg_sql_query($db, $sql); |
$res = rg_sql_query($db, $sql); |
|
... |
... |
if (strstr($r['data'], 'Success!')) { |
244 |
248 |
} |
} |
245 |
249 |
|
|
246 |
250 |
|
|
247 |
|
$sc = rg_test_sc_generate($db, $rg_ui, $good_sid); |
|
|
251 |
|
$sc = rg_test_sc_generate($db, $rg_ui); |
248 |
252 |
|
|
249 |
253 |
|
|
250 |
254 |
rg_log(''); |
rg_log(''); |
File tests/wh_cloud.php changed (mode: 100644) (index a84f27b..478ce80) |
... |
... |
$rg_cache_enable = TRUE; |
20 |
20 |
$rg_cache_debug = TRUE; |
$rg_cache_debug = TRUE; |
21 |
21 |
$rg_event_socket = "/var/lib/rocketgit/sockets/event.sock"; |
$rg_event_socket = "/var/lib/rocketgit/sockets/event.sock"; |
22 |
22 |
|
|
|
23 |
|
prepare_http(); |
|
24 |
|
|
23 |
25 |
$home = getenv('HOME'); |
$home = getenv('HOME'); |
24 |
26 |
if (!file_exists($home . '/.aws/conf.php')) { |
if (!file_exists($home . '/.aws/conf.php')) { |
25 |
27 |
rg_log('no ~/.aws.conf.php file!'); |
rg_log('no ~/.aws.conf.php file!'); |
|
... |
... |
rg_test_create_user($db, $rg_ui); |
37 |
39 |
|
|
38 |
40 |
rg_log(''); |
rg_log(''); |
39 |
41 |
rg_log_enter('Login...'); |
rg_log_enter('Login...'); |
40 |
|
$r = test_login($test_url, $rg_ui, $good_sid); |
|
|
42 |
|
$r = test_login($test_url, $rg_ui); |
41 |
43 |
if ($r === FALSE) { |
if ($r === FALSE) { |
42 |
44 |
rg_log("Cannot login!"); |
rg_log("Cannot login!"); |
43 |
45 |
exit(1); |
exit(1); |
|
... |
... |
$extra = array( |
64 |
66 |
'##repo##-##branch##-##hook_id##' |
'##repo##-##branch##-##hook_id##' |
65 |
67 |
. '-##commit##-##date##-##time##-##ip##-##timestamp##.zip' |
. '-##commit##-##date##-##time##-##ip##-##timestamp##.zip' |
66 |
68 |
); |
); |
67 |
|
rg_test_wh_add_edit($db, $rg_ui, $good_sid, 'cloud', $extra); |
|
|
69 |
|
rg_test_wh_add_edit($db, $rg_ui, 'cloud', $extra); |
68 |
70 |
rg_log_exit(); |
rg_log_exit(); |
69 |
71 |
|
|
70 |
72 |
|
|
|
... |
... |
rg_log_exit(); |
93 |
95 |
|
|
94 |
96 |
rg_log(''); |
rg_log(''); |
95 |
97 |
rg_log_enter('Creating and upload a ssh key...'); |
rg_log_enter('Creating and upload a ssh key...'); |
96 |
|
rg_test_upload_ssh_key($db, $rg_ui, "wh_cloud", $good_sid); |
|
|
98 |
|
rg_test_upload_ssh_key($db, $rg_ui, 'wh_cloud'); |
97 |
99 |
rg_log_exit(); |
rg_log_exit(); |
98 |
100 |
|
|
99 |
101 |
|
|
|
... |
... |
$extra = array( |
152 |
154 |
'wh::idata::bucket' => 'buck', |
'wh::idata::bucket' => 'buck', |
153 |
155 |
'wh::idata::file' => 'rrr', |
'wh::idata::file' => 'rrr', |
154 |
156 |
); |
); |
155 |
|
rg_test_wh_add_edit($db, $rg_ui, $good_sid, 'cloud', $extra); |
|
|
157 |
|
rg_test_wh_add_edit($db, $rg_ui, 'cloud', $extra); |
156 |
158 |
$sql = "SELECT * FROM webhooks WHERE uid = " . $rg_ui['uid'] |
$sql = "SELECT * FROM webhooks WHERE uid = " . $rg_ui['uid'] |
157 |
159 |
. " AND id = " . $wh_id; |
. " AND id = " . $wh_id; |
158 |
160 |
$res = rg_sql_query($db, $sql); |
$res = rg_sql_query($db, $sql); |
File tests/wh_http.php changed (mode: 100644) (index 839572c..5aa4f88) |
... |
... |
function clean() |
37 |
37 |
} |
} |
38 |
38 |
register_shutdown_function('clean'); |
register_shutdown_function('clean'); |
39 |
39 |
|
|
|
40 |
|
prepare_http(); |
40 |
41 |
|
|
41 |
42 |
rg_log(''); |
rg_log(''); |
42 |
43 |
rg_log('Generating certificates...'); |
rg_log('Generating certificates...'); |
|
... |
... |
$key3 = 'DEBUG::' . $rg_ui['uid'] . '::webhooks::' . $port3; |
124 |
125 |
|
|
125 |
126 |
rg_log(''); |
rg_log(''); |
126 |
127 |
rg_log('Login...'); |
rg_log('Login...'); |
127 |
|
$r = test_login($test_url, $rg_ui, $good_sid); |
|
|
128 |
|
$r = test_login($test_url, $rg_ui); |
128 |
129 |
if ($r === FALSE) { |
if ($r === FALSE) { |
129 |
130 |
rg_log("Cannot login!"); |
rg_log("Cannot login!"); |
130 |
131 |
exit(1); |
exit(1); |
|
... |
... |
$extra = array( |
148 |
149 |
'wh::idata::itype' => 0, |
'wh::idata::itype' => 0, |
149 |
150 |
'wh::idata::client_ca_cert' => file_get_contents('ca/wh/certs/cacert.pem') |
'wh::idata::client_ca_cert' => file_get_contents('ca/wh/certs/cacert.pem') |
150 |
151 |
); |
); |
151 |
|
rg_test_wh_add_edit($db, $rg_ui, $good_sid, 'http', $extra); |
|
|
152 |
|
rg_test_wh_add_edit($db, $rg_ui, 'http', $extra); |
152 |
153 |
|
|
153 |
154 |
|
|
154 |
155 |
rg_log(''); |
rg_log(''); |
|
... |
... |
$extra = array( |
169 |
170 |
. file_get_contents('ca/wh/private/client.key'), |
. file_get_contents('ca/wh/private/client.key'), |
170 |
171 |
'wh::idata::client_ca_cert' => file_get_contents('ca/wh/certs/cacert.pem') |
'wh::idata::client_ca_cert' => file_get_contents('ca/wh/certs/cacert.pem') |
171 |
172 |
); |
); |
172 |
|
rg_test_wh_add_edit($db, $rg_ui, $good_sid, 'http', $extra); |
|
|
173 |
|
rg_test_wh_add_edit($db, $rg_ui, 'http', $extra); |
173 |
174 |
|
|
174 |
175 |
|
|
175 |
176 |
rg_log(''); |
rg_log(''); |
|
... |
... |
$extra = array( |
189 |
190 |
'wh::idata::client_cert' => '', |
'wh::idata::client_cert' => '', |
190 |
191 |
'wh::idata::client_ca_cert' => file_get_contents('ca/wh/certs/cacert.pem') |
'wh::idata::client_ca_cert' => file_get_contents('ca/wh/certs/cacert.pem') |
191 |
192 |
); |
); |
192 |
|
rg_test_wh_add_edit($db, $rg_ui, $good_sid, 'http', $extra); |
|
|
193 |
|
rg_test_wh_add_edit($db, $rg_ui, 'http', $extra); |
193 |
194 |
|
|
194 |
195 |
|
|
195 |
196 |
rg_log('Finding out the ids...'); |
rg_log('Finding out the ids...'); |
|
... |
... |
$extra = array( |
293 |
294 |
'wh::idata::client_cert' => 'abc <xss>', |
'wh::idata::client_cert' => 'abc <xss>', |
294 |
295 |
'wh::idata::client_ca_cert' => 'zzz <xss>' |
'wh::idata::client_ca_cert' => 'zzz <xss>' |
295 |
296 |
); |
); |
296 |
|
rg_test_wh_add_edit($db, $rg_ui, $good_sid, 'http', $extra); |
|
|
297 |
|
rg_test_wh_add_edit($db, $rg_ui, 'http', $extra); |
297 |
298 |
$sql = "SELECT * FROM webhooks WHERE uid = " . $rg_ui['uid'] |
$sql = "SELECT * FROM webhooks WHERE uid = " . $rg_ui['uid'] |
298 |
299 |
. " AND id = " . $wh_id1; |
. " AND id = " . $wh_id1; |
299 |
300 |
$res = rg_sql_query($db, $sql); |
$res = rg_sql_query($db, $sql); |
|
... |
... |
foreach ($list as $k => $v) { |
340 |
341 |
rg_log(''); |
rg_log(''); |
341 |
342 |
rg_log_enter('Testing the delete - loading form...'); |
rg_log_enter('Testing the delete - loading form...'); |
342 |
343 |
$data = array(); |
$data = array(); |
343 |
|
$headers = array("Cookie: sid=" . $good_sid); |
|
|
344 |
|
$headers = array(); |
344 |
345 |
$r = do_req($test_url . "/op/settings/wh/list", $data, $headers); |
$r = do_req($test_url . "/op/settings/wh/list", $data, $headers); |
345 |
346 |
if ($r === FALSE) { |
if ($r === FALSE) { |
346 |
347 |
rg_log("Cannot load list form."); |
rg_log("Cannot load list form."); |