comparison geo.t @ 1016:2cf72e8a1a6b

Tests: geo binary base simple tests.
author Andrey Zelenkov <zelenkov@nginx.com>
date Fri, 26 Aug 2016 16:31:57 +0300
parents 1d205c07ef59
children 1fe8d33f75ad
comparison
equal deleted inserted replaced
1015:1d205c07ef59 1016:2cf72e8a1a6b
155 ranges; 155 ranges;
156 default default; 156 default default;
157 127.0.0.0-127.0.0.255 test; 157 127.0.0.0-127.0.0.255 test;
158 127.0.0.1-127.0.0.255 loopback; 158 127.0.0.1-127.0.0.255 loopback;
159 } 159 }
160
161 geo $geo_base_create {
162 ranges;
163 include base.conf;
164 }
165
166 geo $geo_base_include {
167 ranges;
168 include base.conf;
169 }
160 170
161 server { 171 server {
162 listen 127.0.0.1:8080; 172 listen 127.0.0.1:8080;
163 server_name localhost; 173 server_name localhost;
164 174
172 add_header X-ABe $geo_before; 182 add_header X-ABe $geo_before;
173 add_header X-AAf $geo_after; 183 add_header X-AAf $geo_after;
174 add_header X-Ins $geo_insert; 184 add_header X-Ins $geo_insert;
175 add_header X-IBe $geo_insert_before; 185 add_header X-IBe $geo_insert_before;
176 add_header X-IAf $geo_insert_after; 186 add_header X-IAf $geo_insert_after;
187 add_header X-GBc $geo_base_create;
188 add_header X-GBi $geo_base_include;
177 add_header X-Arg $geo_from_arg; 189 add_header X-Arg $geo_from_arg;
178 add_header X-ARa $geo_arg_ranges; 190 add_header X-ARa $geo_arg_ranges;
179 add_header X-XFF $geo_proxy; 191 add_header X-XFF $geo_proxy;
180 add_header X-XFR $geo_proxy_recursive; 192 add_header X-XFR $geo_proxy_recursive;
181 } 193 }
191 203
192 $t->write_file('1', ''); 204 $t->write_file('1', '');
193 $t->write_file('2', ''); 205 $t->write_file('2', '');
194 $t->write_file('geo.conf', '127.0.0.0/8 loopback;'); 206 $t->write_file('geo.conf', '127.0.0.0/8 loopback;');
195 $t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;'); 207 $t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;');
208 $t->write_file('base.conf', join('', map {
209 "127." . $_/256/256 % 256 . "." . $_/256 % 256 . "." . $_ % 256 .
210 "-127." . $_/256/256 % 256 . "." . $_/256 % 256 . "." .$_ % 256 . " " .
211 ($_ == 1 ? "loopback" : "range$_") . ";" } (0 .. 100000)));
196 212
197 $t->run(); 213 $t->run();
198 214
199 plan(skip_all => 'no 127.0.0.1 on host') 215 plan(skip_all => 'no 127.0.0.1 on host')
200 if http_get('/1') !~ /X-IP: 127.0.0.1/m; 216 if http_get('/1') !~ /X-IP: 127.0.0.1/m;
201 217
202 $t->plan(22); 218 $t->plan(24);
203 219
204 ############################################################################### 220 ###############################################################################
205 221
206 my $r = http_get('/1'); 222 my $r = http_get('/1');
207 like($r, qr/^X-Geo: loopback/m, 'geo'); 223 like($r, qr/^X-Geo: loopback/m, 'geo');
222 like($r, qr/^X-ABe: loopback/m, 'geo ranges add before'); 238 like($r, qr/^X-ABe: loopback/m, 'geo ranges add before');
223 like($r, qr/^X-AAf: loopback/m, 'geo ranges add after'); 239 like($r, qr/^X-AAf: loopback/m, 'geo ranges add after');
224 like($r, qr/^X-Ins: loopback/m, 'geo ranges insert'); 240 like($r, qr/^X-Ins: loopback/m, 'geo ranges insert');
225 like($r, qr/^X-IBe: loopback/m, 'geo ranges insert before'); 241 like($r, qr/^X-IBe: loopback/m, 'geo ranges insert before');
226 like($r, qr/^X-IAf: loopback/m, 'geo ranges insert after'); 242 like($r, qr/^X-IAf: loopback/m, 'geo ranges insert after');
243 like($r, qr/^X-GBc: loopback/m, 'geo binary base create');
244 like($r, qr/^X-GBi: loopback/m, 'geo binary base include');
227 245
228 like(http_get('/1?ip=192.0.2.1'), qr/^X-Arg: test/m, 'geo from variable'); 246 like(http_get('/1?ip=192.0.2.1'), qr/^X-Arg: test/m, 'geo from variable');
229 like(http_get('/1?ip=10.0.0.1'), qr/^X-Arg: default/m, 'geo default'); 247 like(http_get('/1?ip=10.0.0.1'), qr/^X-Arg: default/m, 'geo default');
230 like(http_get('/1?ip=10.0.0.1'), qr/^X-ARa: default/m, 'geo ranges default'); 248 like(http_get('/1?ip=10.0.0.1'), qr/^X-ARa: default/m, 'geo ranges default');
231 like(http_get('/1?ip=10.13.2.1'), qr/^X-ARa: foo2/m, 'geo ranges add'); 249 like(http_get('/1?ip=10.13.2.1'), qr/^X-ARa: foo2/m, 'geo ranges add');