diff options
Diffstat (limited to 'tests/it_url.t')
-rwxr-xr-x | tests/it_url.t | 56 |
1 files changed, 56 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); + ?> |