Mercurial > hg > nginx-tests
changeset 123:8aa0dd396a83
Tests: add more autoindex tests.
This includes todo tests for bugs with utf-8 handling and html escaping in
file names.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 31 Dec 2009 17:23:06 +0300 |
parents | 01e86a067f05 |
children | 6edd29865109 |
files | autoindex.t |
diffstat | 1 files changed, 45 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/autoindex.t Mon Dec 28 14:42:43 2009 +0000 +++ b/autoindex.t Thu Dec 31 17:23:06 2009 +0300 @@ -21,7 +21,7 @@ select STDERR; $| = 1; select STDOUT; $| = 1; -my $t = Test::Nginx->new()->has(qw/http autoindex/)->plan(4) +my $t = Test::Nginx->new()->has(qw/http autoindex/)->plan(15) ->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% @@ -42,6 +42,10 @@ location / { autoindex on; } + location /utf8/ { + autoindex on; + charset utf-8; + } } } @@ -55,6 +59,21 @@ $t->write_file('test-file', ''); symlink("$d/test-file", "$d/test-file-link"); +$t->write_file('test-colon:blah', ''); +$t->write_file('test-long-' . ('0' x 50), ''); +$t->write_file('test-long-' . ('>' x 50), ''); +$t->write_file('test-escape-url-%', ''); +$t->write_file('test-escape-html-<>&', ''); + +mkdir($d . '/utf8'); +$t->write_file('utf8/test-utf8-' . ("\xd1\x84" x 3), ''); +$t->write_file('utf8/test-utf8-' . ("\xd1\x84" x 45), ''); +$t->write_file('utf8/test-utf8-<>&-' . "\xd1\x84", ''); +$t->write_file('utf8/test-utf8-<>&-' . ("\xd1\x84" x 45), ''); +$t->write_file('utf8/test-utf8-' . ("\xd1\x84" x 3) . '-' . ('>' x 45), ''); + +mkdir($d . '/test-dir-escape-<>&'); + $t->run(); ############################################################################### @@ -66,4 +85,29 @@ like($r, qr!href="test-dir/"!ms, 'directory'); like($r, qr!href="test-dir-link/"!ms, 'symlink to directory'); +like($r, qr!href="./test-colon:blah"!ms, 'colon not scheme'); +like($r, qr!test-long-0{37}\.\.>!ms, 'long name'); + +like($r, qr!href="test-escape-url-%25"!ms, 'escaped url'); + +{ +local $TODO = 'patches under review'; + +like($r, qr!test-escape-html-<>&!ms, 'escaped html'); +like($r, qr!test-long-(>){37}\.\.>!ms, 'long escaped html'); + +$r = http_get('/utf8/'); + +like($r, qr!test-utf8-(\xd1\x84){3}</a>!ms, 'utf8'); +like($r, qr!test-utf8-(\xd1\x84){37}\.\.!ms, 'utf8 long'); +like($r, qr!test-utf8-<>&-\xd1\x84</a>!ms, 'utf8 escaped'); +like($r, qr!test-utf8-<>&-(\xd1\x84){33}\.\.!ms, + 'utf8 escaped long'); +like($r, qr!test-utf8-(\xd1\x84){3}-(>){33}\.\.!ms, 'utf8 long escaped'); + +like(http_get('/test-dir-escape-<>&/'), qr!test-dir-escape-<>&!ms, + 'escaped title'); + +} + ###############################################################################