annotate not_modified_proxy.t @ 638:f758c780c508

Tests: If-Unmodified-Since for not modified filter with proxy. This covers "header already sent" alerts seen for responses from cache.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 29 Jul 2015 13:55:27 +0300
parents 2cd00179f4b2
children 2d10f958741d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
418
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for not modified filter module and it's interaction with proxy.
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6 #
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 # Notably, requests which are proxied should be skipped (that is, if
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8 # a backend returned 200, we should pass 200 to a client without any
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 # attempts to handle conditional headers in the request), but responses
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 # from cache should be handled.
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 ###############################################################################
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 use warnings;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15 use strict;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::More;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 BEGIN { use FindBin; chdir($FindBin::Bin); }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 use lib 'lib';
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 use Test::Nginx;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 ###############################################################################
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26 select STDERR; $| = 1;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 select STDOUT; $| = 1;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
638
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
29 my $t = Test::Nginx->new()->has(qw/http proxy cache shmem/)->plan(12)
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
30 ->write_file_expand('nginx.conf', <<'EOF')->todo_alerts();
418
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 %%TEST_GLOBALS%%
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 daemon off;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 events {
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 http {
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 %%TEST_GLOBALS_HTTP%%
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 proxy_cache_path %%TESTDIR%%/cache keys_zone=one:1m;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 proxy_set_header If-Modified-Since "";
638
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
45 proxy_set_header If-Unmodified-Since "";
418
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 proxy_set_header If-None-Match "";
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 server {
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 listen 127.0.0.1:8080;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 server_name localhost;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 location / {
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 location /etag {
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 add_header Last-Modified "";
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 location /proxy/ {
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 proxy_pass http://127.0.0.1:8080/;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 location /cache/ {
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 proxy_pass http://127.0.0.1:8080/;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 proxy_cache one;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 proxy_cache_valid 200 1y;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67 }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69 }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 EOF
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 $t->write_file('t', '');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74 $t->write_file('etag', '');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 $t->run();
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 ###############################################################################
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80 my ($t1, $lm, $etag);
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 $t1 = http_get('/cache/t');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 $t1 =~ /Last-Modified: (.*)/; $lm = $1;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84 $t1 =~ /ETag: (.*)/; $etag = $1;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 like(http_get_ims('/t', $lm), qr/ 304 /, 'if-modified-since');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 like(http_get_ims('/proxy/t', $lm), qr/ 200 /, 'ims proxy ignored');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88 like(http_get_ims('/cache/t', $lm), qr/ 304 /, 'ims from cache');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89
638
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
90 $t1 = 'Fri, 05 Jul 1985 14:30:52 GMT';
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
91
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
92 like(http_get_iums('/t', $t1), qr/ 412 /, 'if-unmodified-since');
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
93 like(http_get_iums('/proxy/t', $t1), qr/ 200 /, 'iums proxy ignored');
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
94 like(http_get_iums('/cache/t', $t1), qr/ 412 /, 'iums from cache');
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
95
418
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 like(http_get_inm('/t', $etag), qr/ 304 /, 'if-none-match');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97 like(http_get_inm('/proxy/t', $etag), qr/ 200 /, 'inm proxy ignored');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98 like(http_get_inm('/cache/t', $etag), qr/ 304 /, 'inm from cache');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100 # backend response with ETag only, no Last-Modified
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102 $t1 = http_get('/cache/etag');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 $t1 =~ /ETag: (.*)/; $etag = $1;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105 like(http_get_inm('/etag', $etag), qr/ 304 /, 'if-none-match etag only');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106 like(http_get_inm('/proxy/etag', $etag), qr/ 200 /, 'inm etag proxy ignored');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
107 like(http_get_inm('/cache/etag', $etag), qr/ 304 /, 'inm etag from cache');
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109 ###############################################################################
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111 sub http_get_ims {
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
112 my ($url, $ims) = @_;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
113 return http(<<EOF);
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114 GET $url HTTP/1.0
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 Host: localhost
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116 If-Modified-Since: $ims
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
117
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
118 EOF
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
119 }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
120
638
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
121 sub http_get_iums {
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
122 my ($url, $ims) = @_;
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
123 return http(<<EOF);
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
124 GET $url HTTP/1.0
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
125 Host: localhost
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
126 If-Unmodified-Since: $ims
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
127
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
128 EOF
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
129 }
f758c780c508 Tests: If-Unmodified-Since for not modified filter with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents: 574
diff changeset
130
418
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
131 sub http_get_inm {
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
132 my ($url, $inm) = @_;
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
133 return http(<<EOF);
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134 GET $url HTTP/1.0
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 Host: localhost
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136 If-None-Match: $inm
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
138 EOF
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
139 }
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140
861e6cad6299 Tests: tests for not modified filter with proxy.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141 ###############################################################################