annotate proxy_no_cache.t @ 1989:bf027a972ccf default tip

Tests: proxy_no_cache tests.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 25 Jun 2024 21:46:50 +0300
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1989
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for http proxy cache, proxy_no_cache.
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http proxy cache rewrite/)->plan(16)
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 ->write_file_expand('nginx.conf', <<'EOF');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 %%TEST_GLOBALS%%
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 daemon off;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 events {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 http {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 %%TEST_GLOBALS_HTTP%%
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 proxy_cache_path %%TESTDIR%%/cache keys_zone=one:1m;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 server {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 listen 127.0.0.1:8080;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 server_name localhost;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 location / {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 proxy_pass http://127.0.0.1:8081;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 proxy_cache one;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 proxy_cache_key $uri;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 proxy_cache_valid any 1y;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 proxy_no_cache $arg_nocache;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 proxy_intercept_errors on;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 error_page 404 = @fallback;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 location /t3 {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 proxy_pass http://127.0.0.1:8081;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 proxy_cache one;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 proxy_cache_key $uri;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 proxy_cache_valid any 1y;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 proxy_no_cache $arg_nocache;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 location /t4 {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 proxy_pass http://127.0.0.1:8081;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67 proxy_cache one;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 proxy_cache_key $uri;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69 proxy_cache_valid any 1s;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 proxy_no_cache $upstream_http_x_no_cache;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72 proxy_cache_revalidate on;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 location @fallback {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 return 403;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79 add_header X-Cache-Status $upstream_cache_status always;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 server {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 listen 127.0.0.1:8081;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84 server_name localhost;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 location / {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89 location /t3 {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90 set $nocache "";
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91 if ($arg_expires) {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 set $nocache "no-cache";
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
93 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 add_header Cache-Control $nocache;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
95 add_header Transfer-Encoding invalid;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98 location /t4 {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99 set $nocache "";
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100 if ($arg_expires) {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 set $nocache "no-cache";
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 add_header Cache-Control $nocache;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104 add_header X-No-Cache $arg_nocache;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
107 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109 EOF
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111 $t->write_file('t', 'SEE-THIS');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
112 $t->write_file('t3', 'SEE-THIS');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
113 $t->write_file('t4', 'SEE-THIS');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 $t->run();
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
117 ###############################################################################
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
118
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
119 like(http_get('/t?nocache=1'), qr/MISS.*SEE-THIS/s, 'request');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
120 like(http_get('/t'), qr/MISS.*SEE-THIS/s, 'request not cached');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
121 like(http_get('/t'), qr/HIT.*SEE-THIS/s, 'request cached');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
122
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
123 # proxy_no_cache with intercepted errors,
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
124 # ngx_http_upstream_intercept_errors()
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
125
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
126 like(http_get('/t2?nocache=1'), qr/403 Forbidden/, 'intercepted error');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
127
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
128 TODO: {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
129 local $TODO = 'not yet' unless $t->has_version('1.27.2');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
130
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
131 like(http_get('/t2'), qr/403 Forbidden.*MISS/s, 'intercepted error not cached');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
132
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
133 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 like(http_get('/t2'), qr/403 Forbidden.*HIT/s, 'intercepted error cached');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137 # proxy_no_cache with internal 502/504 errors,
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
138 # ngx_http_upstream_finalize_request()
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
139
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140 like(http_get('/t3?nocache=1'), qr/502 Bad/, 'internal 502 error');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
142 TODO: {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
143 local $TODO = 'not yet' unless $t->has_version('1.27.2');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
144
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
145 like(http_get('/t3?expires=1'), qr/502 Bad.*MISS/s,
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
146 'internal 502 error expires');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
147 like(http_get('/t3'), qr/502 Bad.*MISS/s, 'internal 502 error not cached');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
148
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
149 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
150
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
151 like(http_get('/t3'), qr/502 Bad.*HIT/s, 'internal 502 error cached');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
152
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
153 # proxy_no_cache with revalidate and 304,
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
154 # ngx_http_upstream_test_next()
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
155
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
156 like(http_get('/t4'), qr/MISS.*SEE-THIS/s, 'revalidate');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
157 like(http_get('/t4'), qr/HIT.*SEE-THIS/s, 'revalidate cached');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
158 select undef, undef, undef, 2.5;
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
159 like(http_get('/t4?nocache=1'), qr/REVALIDATED.*SEE-THIS/s,
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
160 'revalidate nocache');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
161
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
162 TODO: {
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
163 local $TODO = 'not yet' unless $t->has_version('1.27.2');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
164
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
165 like(http_get('/t4?expires=1'), qr/REVALIDATED.*SEE-THIS/s,
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
166 'revalidate expires');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
167 like(http_get('/t4'), qr/REVALIDATED.*SEE-THIS/s,
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
168 'revalidate again');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
169
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
170 }
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
171
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
172 like(http_get('/t4'), qr/HIT.*SEE-THIS/s, 'revalidate again cached');
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
173
bf027a972ccf Tests: proxy_no_cache tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
174 ###############################################################################