annotate autoindex.t @ 251:df984d23f9d1

Tests: improve fastcgi keepalive tests. On some platforms fastcgi_keepalive.t tests failed due to problems in handling of data split into multiple packets. Harden tests to fail on all platforms by adding more sleeps, and mark them as TODO till underlying problems are fixed. Additionally, add some padding testing.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 25 Jan 2013 20:53:53 +0400
parents 6a0d934950bc
children 3da39688c14b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
108
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for autoindex module.
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
223
f9325406df0b Tests: skip tests not appropriate for win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 175
diff changeset
24 plan(skip_all => 'no symlinks on win32') if $^O eq 'MSWin32';
f9325406df0b Tests: skip tests not appropriate for win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 175
diff changeset
25
126
0a2f750790c9 Tests: add autoindex test for '?' in file name.
Maxim Dounin <mdounin@mdounin.ru>
parents: 125
diff changeset
26 my $t = Test::Nginx->new()->has(qw/http autoindex/)->plan(16)
108
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 %%TEST_GLOBALS%%
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
249
6a0d934950bc Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents: 223
diff changeset
31 daemon off;
108
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 events {
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 }
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 http {
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 server {
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 listen 127.0.0.1:8080;
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 server_name localhost;
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 location / {
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 autoindex on;
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 }
123
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
46 location /utf8/ {
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
47 autoindex on;
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
48 charset utf-8;
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
49 }
108
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 }
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 }
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 EOF
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 my $d = $t->testdir();
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 mkdir("$d/test-dir");
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 symlink("$d/test-dir", "$d/test-dir-link");
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 $t->write_file('test-file', '');
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 symlink("$d/test-file", "$d/test-file-link");
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62
123
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
63 $t->write_file('test-colon:blah', '');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
64 $t->write_file('test-long-' . ('0' x 50), '');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
65 $t->write_file('test-long-' . ('>' x 50), '');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
66 $t->write_file('test-escape-url-%', '');
126
0a2f750790c9 Tests: add autoindex test for '?' in file name.
Maxim Dounin <mdounin@mdounin.ru>
parents: 125
diff changeset
67 $t->write_file('test-escape-url2-?', '');
123
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
68 $t->write_file('test-escape-html-<>&', '');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
69
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
70 mkdir($d . '/utf8');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
71 $t->write_file('utf8/test-utf8-' . ("\xd1\x84" x 3), '');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
72 $t->write_file('utf8/test-utf8-' . ("\xd1\x84" x 45), '');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
73 $t->write_file('utf8/test-utf8-<>&-' . "\xd1\x84", '');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
74 $t->write_file('utf8/test-utf8-<>&-' . ("\xd1\x84" x 45), '');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
75 $t->write_file('utf8/test-utf8-' . ("\xd1\x84" x 3) . '-' . ('>' x 45), '');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
76
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
77 mkdir($d . '/test-dir-escape-<>&');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
78
108
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79 $t->run();
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81 ###############################################################################
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 my $r = http_get('/');
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85 like($r, qr!href="test-file"!ms, 'file');
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 like($r, qr!href="test-file-link"!ms, 'symlink to file');
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 like($r, qr!href="test-dir/"!ms, 'directory');
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88 like($r, qr!href="test-dir-link/"!ms, 'symlink to directory');
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89
146
afa07ae9def6 Tests: better autoindex colon test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 126
diff changeset
90 unlike($r, qr!href="test-colon:blah"!ms, 'colon not scheme');
123
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
91 like($r, qr!test-long-0{37}\.\.&gt;!ms, 'long name');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
92
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
93 like($r, qr!href="test-escape-url-%25"!ms, 'escaped url');
126
0a2f750790c9 Tests: add autoindex test for '?' in file name.
Maxim Dounin <mdounin@mdounin.ru>
parents: 125
diff changeset
94 like($r, qr!href="test-escape-url2-%3f"!ms, 'escaped ? in url');
123
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
95 like($r, qr!test-escape-html-&lt;&gt;&amp;!ms, 'escaped html');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
96 like($r, qr!test-long-(&gt;){37}\.\.&gt;!ms, 'long escaped html');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
97
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
98 $r = http_get('/utf8/');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
99
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
100 like($r, qr!test-utf8-(\xd1\x84){3}</a>!ms, 'utf8');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
101 like($r, qr!test-utf8-(\xd1\x84){37}\.\.!ms, 'utf8 long');
125
f10f077a3174 Tests: autoindex utf8 handling fixed in 0.8.32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 123
diff changeset
102
123
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
103 like($r, qr!test-utf8-&lt;&gt;&amp;-\xd1\x84</a>!ms, 'utf8 escaped');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
104 like($r, qr!test-utf8-&lt;&gt;&amp;-(\xd1\x84){33}\.\.!ms,
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
105 'utf8 escaped long');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
106 like($r, qr!test-utf8-(\xd1\x84){3}-(&gt;){33}\.\.!ms, 'utf8 long escaped');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
107
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
108 like(http_get('/test-dir-escape-<>&/'), qr!test-dir-escape-&lt;&gt;&amp;!ms,
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
109 'escaped title');
8aa0dd396a83 Tests: add more autoindex tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 121
diff changeset
110
108
93a8f4202b16 Tests: add autoindex module tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111 ###############################################################################