Mercurial > hg > nginx-tests
comparison slice.t @ 1129:1173800a4a19
Tests: added slice filter tests in named location.
Prodded by Mindaugas Rasiukevicius.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 14 Feb 2017 13:04:38 +0300 |
parents | 196d33c2bb45 |
children | 0c15ba7d19b3 |
comparison
equal
deleted
inserted
replaced
1128:bef8be8a6224 | 1129:1173800a4a19 |
---|---|
13 use Test::More; | 13 use Test::More; |
14 | 14 |
15 BEGIN { use FindBin; chdir($FindBin::Bin); } | 15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
16 | 16 |
17 use lib 'lib'; | 17 use lib 'lib'; |
18 use Test::Nginx; | 18 use Test::Nginx qw/ :DEFAULT http_end /; |
19 | 19 |
20 ############################################################################### | 20 ############################################################################### |
21 | 21 |
22 select STDERR; $| = 1; | 22 select STDERR; $| = 1; |
23 select STDOUT; $| = 1; | 23 select STDOUT; $| = 1; |
24 | 24 |
25 my $t = Test::Nginx->new()->has(qw/http proxy cache fastcgi slice/) | 25 my $t = Test::Nginx->new()->has(qw/http proxy cache fastcgi slice rewrite/) |
26 ->plan(72); | 26 ->plan(74); |
27 | 27 |
28 $t->write_file_expand('nginx.conf', <<'EOF'); | 28 $t->write_file_expand('nginx.conf', <<'EOF'); |
29 | 29 |
30 %%TEST_GLOBALS%% | 30 %%TEST_GLOBALS%% |
31 | 31 |
36 | 36 |
37 http { | 37 http { |
38 %%TEST_GLOBALS_HTTP%% | 38 %%TEST_GLOBALS_HTTP%% |
39 | 39 |
40 proxy_cache_path %%TESTDIR%%/cache keys_zone=NAME:1m; | 40 proxy_cache_path %%TESTDIR%%/cache keys_zone=NAME:1m; |
41 proxy_cache_path %%TESTDIR%%/cach3 keys_zone=NAME3:1m; | |
41 proxy_cache_key $uri$is_args$args$slice_range; | 42 proxy_cache_key $uri$is_args$args$slice_range; |
42 | 43 |
43 fastcgi_cache_path %%TESTDIR%%/cache2 keys_zone=NAME2:1m; | 44 fastcgi_cache_path %%TESTDIR%%/cache2 keys_zone=NAME2:1m; |
44 fastcgi_cache_key $uri$is_args$args$slice_range; | 45 fastcgi_cache_key $uri$is_args$args$slice_range; |
45 | 46 |
76 | 77 |
77 fastcgi_force_ranges on; | 78 fastcgi_force_ranges on; |
78 | 79 |
79 add_header X-Cache-Status $upstream_cache_status; | 80 add_header X-Cache-Status $upstream_cache_status; |
80 } | 81 } |
82 | |
83 location /cache-redirect { | |
84 error_page 404 = @fallback; | |
85 } | |
86 | |
87 location @fallback { | |
88 slice 2; | |
89 | |
90 proxy_pass http://127.0.0.1:8081/t$is_args$args; | |
91 | |
92 proxy_cache NAME3; | |
93 | |
94 proxy_set_header Range $slice_range; | |
95 | |
96 proxy_cache_valid 200 206 1h; | |
97 } | |
81 } | 98 } |
82 | 99 |
83 server { | 100 server { |
84 listen 127.0.0.1:8081; | 101 listen 127.0.0.1:8081; |
85 server_name localhost; | 102 server_name localhost; |
86 | 103 |
87 location / { } | 104 location / { |
105 if ($http_range = "") { | |
106 set $limit_rate 100; | |
107 } | |
108 } | |
88 } | 109 } |
89 } | 110 } |
90 | 111 |
91 EOF | 112 EOF |
92 | 113 |
238 'fastcgi slice'); | 259 'fastcgi slice'); |
239 like(get("/fastcgi?1", "Range: bytes=1-1"), qr/ 206 .*HIT.*^1$/ms, | 260 like(get("/fastcgi?1", "Range: bytes=1-1"), qr/ 206 .*HIT.*^1$/ms, |
240 'fastcgi slice cached'); | 261 'fastcgi slice cached'); |
241 like(get("/fastcgi?1", "Range: bytes=2-2"), qr/ 206 .*MISS.*^2$/ms, | 262 like(get("/fastcgi?1", "Range: bytes=2-2"), qr/ 206 .*MISS.*^2$/ms, |
242 'fastcgi slice next'); | 263 'fastcgi slice next'); |
264 } | |
265 | |
266 # slicing in named location | |
267 | |
268 my $s = http_get('/cache-redirect', start => 1); | |
269 # loop protection used with limit_rate, exit loop if subrequest has lost range | |
270 unless ($t->has_version('1.11.10')) { | |
271 select undef, undef, undef, 0.2; | |
272 $t->write_file('/cache-redirect', ''); | |
273 } | |
274 $r = http_end($s); | |
275 | |
276 TODO: { | |
277 local $TODO = 'not yet' unless $t->has_version('1.11.10'); | |
278 | |
279 like($r, qr/ 200 .*^0123456789abcdef$/ms, 'in named location'); | |
280 is(scalar @{[ glob $t->testdir() . '/cach3/*' ]}, 8, | |
281 'in named location - cache entries'); | |
282 | |
243 } | 283 } |
244 | 284 |
245 ############################################################################### | 285 ############################################################################### |
246 | 286 |
247 sub get { | 287 sub get { |