comparison range.t @ 344:b6d566531746

Tests: tests for range filter bound with "max_ranges".
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 30 Sep 2013 19:07:41 +0400
parents 6a0d934950bc
children 8e8636a4fe61
comparison
equal deleted inserted replaced
343:e7dc8f4d0a4b 344:b6d566531746
19 ############################################################################### 19 ###############################################################################
20 20
21 select STDERR; $| = 1; 21 select STDERR; $| = 1;
22 select STDOUT; $| = 1; 22 select STDOUT; $| = 1;
23 23
24 my $t = Test::Nginx->new()->has(qw/http charset/)->plan(31); 24 my $t = Test::Nginx->new()->has(qw/http charset/)->plan(35);
25 25
26 $t->write_file_expand('nginx.conf', <<'EOF'); 26 $t->write_file_expand('nginx.conf', <<'EOF');
27 27
28 %%TEST_GLOBALS%% 28 %%TEST_GLOBALS%%
29 29
45 45
46 location /t2.html { 46 location /t2.html {
47 charset A; 47 charset A;
48 source_charset B; 48 source_charset B;
49 } 49 }
50
51 location /t3.html {
52 max_ranges 2;
53 }
54
55 location /t4.html {
56 max_ranges 0;
57 }
50 } 58 }
51 } 59 }
52 60
53 EOF 61 EOF
54 62
55 $t->write_file('t1.html', 63 $t->write_file('t1.html',
56 join('', map { sprintf "X%03dXXXXXX", $_ } (0 .. 99))); 64 join('', map { sprintf "X%03dXXXXXX", $_ } (0 .. 99)));
57 $t->write_file('t2.html', 65 $t->write_file('t2.html',
66 join('', map { sprintf "X%03dXXXXXX", $_ } (0 .. 99)));
67 $t->write_file('t3.html',
68 join('', map { sprintf "X%03dXXXXXX", $_ } (0 .. 99)));
69 $t->write_file('t4.html',
58 join('', map { sprintf "X%03dXXXXXX", $_ } (0 .. 99))); 70 join('', map { sprintf "X%03dXXXXXX", $_ } (0 .. 99)));
59 $t->run(); 71 $t->run();
60 72
61 ############################################################################### 73 ###############################################################################
62 74
112 like($t1, qr/X001XXXXXX\x0d?$/m, 'multipart big - content 10-19'); 124 like($t1, qr/X001XXXXXX\x0d?$/m, 'multipart big - content 10-19');
113 125
114 like(http_get_range('/t1.html', 'Range: bytes=100000-'), qr/416/, 126 like(http_get_range('/t1.html', 'Range: bytes=100000-'), qr/416/,
115 'not satisfiable'); 127 'not satisfiable');
116 128
129 like(http_get_range('/t3.html', 'Range: bytes=0-9, -10'), qr/206/,
130 'max_ranges not reached');
131 like(http_get_range('/t3.html', 'Range: bytes=0-9, -10, 10000-'), qr/206/,
132 'max_ranges not reached bad range');
133 unlike(http_get_range('/t3.html', 'Range: bytes=0-9, -10, 10-19'),
134 qr/206/, 'max_ranges reached');
135 unlike(http_get_range('/t4.html', 'Range: bytes=0-9'), qr/206/,
136 'max_ranges zero');
137
117 ############################################################################### 138 ###############################################################################
118 139
119 sub http_get_range { 140 sub http_get_range {
120 my ($url, $extra) = @_; 141 my ($url, $extra) = @_;
121 return http(<<EOF); 142 return http(<<EOF);