diff options
Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/it_url.t | 56 | ||||
| -rw-r--r-- | tests/it_url.testserver.php | 21 | 
2 files changed, 77 insertions, 0 deletions
| diff --git a/tests/it_url.t b/tests/it_url.t index 10fd015..0655bda 100755 --- a/tests/it_url.t +++ b/tests/it_url.t @@ -123,9 +123,65 @@ ok(  	'it_url::get() static call'  ); +$server = proc_open( +	'php -S localhost:8000 ' . dirname($_SERVER['PHP_SELF']) . '/it_url.testserver.php', +	array(0 => fopen('/dev/null', 'r'), 1 => fopen('/dev/null', 'w'), 2 => array('pipe', 'w')), +	//array(0 => fopen('/dev/null', 'r'), 1 => fopen('/dev/null', 'w'), 2 => array(fopen('php://stderr', 'w'))), +	$pipes +); +usleep(100000); +stream_set_blocking($pipes[2], 0); +function server_output() { +	$result = array(); +	while (($result[] = trim(fgets($GLOBALS['pipes'][2])))) {}; +	return array_filter($result); +} + +$res = is( +	it_url::get('http://localhost:8000/'), +	"Testserver root output", +	'it_url::get() static call with port', +); +$output = server_output(); +if (!$res) +	diag($output); + +$res = is( +	it_url::get('http://localhost:8000/temp_redirect'), +	"Testserver output after temporary redirect", +	'it_url::get() follows temproary redirect', +); +$output = server_output(); +if (!$res) +	diag($output); + +$res = is( +	it_url::get('http://localhost:8000/perm_redirect'), +	"Testserver output after permanent redirect", +	'it_url::get() follows permanent redirect', +); +$output = server_output(); +if (!$res) +	diag($output); + +$res = ok( +	!it_url::get(U('http://localhost:8000/redirect_loop', 'num' => 10)), +	'it_url::get() handles redirect loop', +); +$output = server_output(); +$last_num = it::match('num=(\d+)', end($output)); +$res2 = ok( +	$last_num == 5, +	'it_url::get() aborts redirect loop after 5 redirects', +); +if (!$res || !$res2) +	diag($output); +  $pages = it_url::get_multi('urls' => array('a' => 'http://www.gna.ch/', 'b' => 'http://search.ch/'));  ok(strpos($pages['a'], '</html>'), 'it_url::get_multi got first url'); # UTF8SAFE  ok(strpos($pages['b'], '</html>'), 'it_url::get_multi got second url'); # UTF8SAFE  is(count($pages), 2, 'it_url::get_multi no additional array elements'); +proc_terminate($server); +  ?> diff --git a/tests/it_url.testserver.php b/tests/it_url.testserver.php new file mode 100644 index 0000000..c9c5dff --- /dev/null +++ b/tests/it_url.testserver.php @@ -0,0 +1,21 @@ +<?php +require '/www/server/phpinclude/auto_prepend.php'; +$stderr = fopen('php://stderr', 'w'); +fwrite($stderr, "Got Request: '" . $_SERVER['REQUEST_URI'] . "'\n"); + +if ($_SERVER['PHP_SELF'] == "/") { +	echo 'Testserver root output'; + +} else if ($_SERVER['PHP_SELF'] == "/temp_redirect") { +	it_url::redirect(U("redirect_target", array('type' => 'temporary')), 'temporary'); + +} else if ($_SERVER['PHP_SELF'] == "/perm_redirect") { +	it_url::redirect(U("redirect_target", array('type' => 'permanent')), 'permanent'); + +} else if ($_SERVER['PHP_SELF'] == "/redirect_loop") { +	if ($_REQUEST['num'] > 0) +		it_url::redirect(U("redirect_loop", array('num' => $_REQUEST['num'] - 1))); + +} else if ($_SERVER['PHP_SELF'] == "/redirect_target") { +	echo 'Testserver output after ' . $_REQUEST['type'] . ' redirect'; +} |