Skip to content

Commit c546166

Browse files
committed
Tests: clearing of pre-existing Content-Range headers.
1 parent c63be9b commit c546166

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

range_clearing.t

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#!/usr/bin/perl
2+
3+
# (C) Eugene Grebenschikov
4+
# (C) Sergey Kandaurov
5+
# (C) Nginx, Inc.
6+
7+
# Tests for clearing of pre-existing Content-Range headers.
8+
9+
###############################################################################
10+
11+
use warnings;
12+
use strict;
13+
14+
use Test::More;
15+
16+
BEGIN { use FindBin; chdir($FindBin::Bin); }
17+
18+
use lib 'lib';
19+
use Test::Nginx;
20+
21+
###############################################################################
22+
23+
select STDERR; $| = 1;
24+
select STDOUT; $| = 1;
25+
26+
my $t = Test::Nginx->new()->has(qw/http rewrite proxy cache/)
27+
->write_file_expand('nginx.conf', <<'EOF');
28+
29+
%%TEST_GLOBALS%%
30+
31+
daemon off;
32+
33+
events {
34+
}
35+
36+
http {
37+
%%TEST_GLOBALS_HTTP%%
38+
39+
proxy_cache_path %%TESTDIR%%/cache levels=1:2 keys_zone=NAME:1m;
40+
41+
server {
42+
listen 127.0.0.1:8080;
43+
server_name localhost;
44+
45+
location / {
46+
proxy_pass http://127.0.0.1:8080/stub;
47+
proxy_cache NAME;
48+
proxy_cache_valid 200 1m;
49+
}
50+
51+
location /stub {
52+
add_header Content-Range stub;
53+
add_header Accept-Ranges bytes;
54+
return 200 "SEE-THIS";
55+
}
56+
}
57+
}
58+
59+
EOF
60+
61+
$t->run()->plan(3);
62+
63+
###############################################################################
64+
65+
local $TODO = 'not yet' unless $t->has_version('1.23.1');
66+
67+
like(http_get_range('/', 'Range: bytes=0-4'),
68+
qr/ 206 (?!.*stub)/s, 'content range cleared - range request');
69+
like(http_get_range('/', 'Range: bytes=0-2,4-'),
70+
qr/ 206 (?!.*stub)/s, 'content range cleared - multipart');
71+
like(http_get_range('/', 'Range: bytes=1000-'),
72+
qr/ 416 (?!.*stub)/s, 'content range cleared - not satisfable');
73+
74+
###############################################################################
75+
76+
sub http_get_range {
77+
my ($url, $extra) = @_;
78+
return http(<<EOF);
79+
GET $url HTTP/1.1
80+
Host: localhost
81+
Connection: close
82+
$extra
83+
84+
EOF
85+
}
86+
87+
###############################################################################

0 commit comments

Comments
 (0)