diff options
Diffstat (limited to 'tests/it_url.t')
-rwxr-xr-x | tests/it_url.t | 149 |
1 files changed, 64 insertions, 85 deletions
diff --git a/tests/it_url.t b/tests/it_url.t index de1cd0b..45e882c 100755 --- a/tests/it_url.t +++ b/tests/it_url.t @@ -123,120 +123,99 @@ 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')), - $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); +require 'it_url_server.php'; -$res = is( - it_url::get('http://localhost:8000/temp_redirect'), - "Testserver output after temporary redirect", - 'it_url::get() follows temproary redirect', +handle_server( + 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/perm_redirect'), - "Testserver output after permanent redirect", - 'it_url::get() follows permanent redirect', +handle_server( + 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/relative_redirect'), - "Testserver output after relative redirect", - 'TODO: it_url::get() follows relative redirect correctly', +handle_server( + 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 = is( - it_url::get('http://localhost:8000/nohost_redirect'), - "Testserver output after nohost redirect", - 'TODO: it_url::get() follows redirect without host correctly', +handle_server( + is( + it_url::get('http://localhost:8000/relative_redirect'), + "Testserver output after relative redirect", + 'TODO: it_url::get() follows relative redirect correctly', + ) +); + +handle_server( + is( + it_url::get('http://localhost:8000/nohost_redirect'), + "Testserver output after nohost redirect", + 'TODO: it_url::get() follows redirect without host correctly', + ) ); -$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 = handle_server( + 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( +if (!ok( $last_num == 5, 'it_url::get() aborts redirect loop after 5 redirects', -); -if (!$res || !$res2) +)) diag($output); -$res = ok( - !it_url::get('url' => 'http://localhost:8000/does_not_exist', 'retries' => 4), - 'it_url::get() retries on empty response', +$output = handle_server( + ok( + !it_url::get('url' => 'http://localhost:8000/does_not_exist', 'retries' => 4), + 'it_url::get() retries on empty response', + ) ); -$output = server_output(); -$res2 = ok( +if (!ok( count(preg_grep('/^Got Request:/', $output)) == 5, 'it_url::get() respects set retry count', -); -if (!$res || !$res2) +)) diag($output); -$res = is( - it_url::get(U('http://localhost:8000/get_server_value', 'key' => 'HTTP_HOST')), - 'localhost:8000', - 'TODO it_url::get() sets correct Host header', +handle_server( + is( + it_url::get(U('http://localhost:8000/get_server_value', 'key' => 'HTTP_HOST')), + 'localhost:8000', + 'TODO it_url::get() sets correct Host header', + ) ); -$output = server_output(); -if (!$res) - diag($output); -$res = is( - it_url::get(U('http://localhost:8000/get_server_value', 'key' => 'HTTP_ACCEPT_LANGUAGE')), - T_lang(), - 'it_url::get() sets correct Accept-Language header', +handle_server( + is( + it_url::get(U('http://localhost:8000/get_server_value', 'key' => 'HTTP_ACCEPT_LANGUAGE')), + T_lang(), + 'it_url::get() sets correct Accept-Language header', + ) ); -$output = server_output(); -if (!$res) - diag($output); -$res = ok( - it::match('Mozilla', it_url::get(U('http://localhost:8000/get_server_value', 'key' => 'HTTP_USER_AGENT'))), - 'it_url::get() sets User-Agent containing Mozilla', +handle_server( + ok( + it::match('Mozilla', it_url::get(U('http://localhost:8000/get_server_value', 'key' => 'HTTP_USER_AGENT'))), + 'it_url::get() sets User-Agent containing Mozilla', + ) ); -$output = server_output(); -if (!$res) - 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); - ?> |