Mercurial > hg > nginx-tests
changeset 1013:8f92d97cf40e
Tests: geo include tests.
author | Andrey Zelenkov <zelenkov@nginx.com> |
---|---|
date | Fri, 26 Aug 2016 16:31:08 +0300 |
parents | a0758fe11465 |
children | 61fbb879446a |
files | geo.t stream_geo.t |
diffstat | 2 files changed, 45 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/geo.t Fri Aug 26 16:30:54 2016 +0300 +++ b/geo.t Fri Aug 26 16:31:08 2016 +0300 @@ -1,6 +1,8 @@ #!/usr/bin/perl # (C) Maxim Dounin +# (C) Andrey Zelenkov +# (C) Nginx, Inc. # Tests for nginx geo module. @@ -41,6 +43,12 @@ 0.0.0.0/0 world; } + geo $geo_include { + include geo.conf; + 192.0.2.0/24 test; + 0.0.0.0/0 world; + } + geo $arg_ip $geo_from_arg { default default; 127.0.0.0/8 loopback; @@ -69,6 +77,13 @@ 192.0.2.0-192.0.2.255 test; } + geo $geo_ranges_include { + ranges; + default default; + include geo-ranges.conf; + 192.0.2.0-192.0.2.255 test; + } + server { listen 127.0.0.1:8080; server_name localhost; @@ -76,7 +91,9 @@ location / { add_header X-IP $remote_addr; add_header X-Geo $geo; + add_header X-Inc $geo_include; add_header X-Ran $geo_ranges; + add_header X-RIn $geo_ranges_include; add_header X-Arg $geo_from_arg; add_header X-XFF $geo_proxy; add_header X-XFR $geo_proxy_recursive; @@ -87,18 +104,23 @@ EOF $t->write_file('1', ''); +$t->write_file('geo.conf', '127.0.0.0/8 loopback;'); +$t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;'); + $t->run(); plan(skip_all => 'no 127.0.0.1 on host') if http_get('/1') !~ /X-IP: 127.0.0.1/m; -$t->plan(9); +$t->plan(11); ############################################################################### my $r = http_get('/1'); like($r, qr/^X-Geo: loopback/m, 'geo'); +like($r, qr/^X-Inc: loopback/m, 'geo include'); like($r, qr/^X-Ran: loopback/m, 'geo ranges'); +like($r, qr/^X-RIn: loopback/m, 'geo ranges include'); like(http_get('/1?ip=192.0.2.1'), qr/^X-Arg: test/m, 'geo from variable'); like(http_get('/1?ip=10.0.0.1'), qr/^X-Arg: default/m, 'geo default');
--- a/stream_geo.t Fri Aug 26 16:30:54 2016 +0300 +++ b/stream_geo.t Fri Aug 26 16:31:08 2016 +0300 @@ -2,6 +2,7 @@ # (C) Maxim Dounin # (C) Sergey Kandaurov +# (C) Andrey Zelenkov # (C) Nginx, Inc. # Tests for stream geo module. @@ -42,6 +43,12 @@ 0.0.0.0/0 world; } + geo $geo_include { + include geo.conf; + 192.0.2.0/24 test; + 0.0.0.0/0 world; + } + geo $remote_addr $geo_from_addr { 127.0.0.0/8 loopback; 192.0.2.0/24 test; @@ -71,10 +78,19 @@ 192.0.2.0-192.0.2.255 test; } + geo $geo_ranges_include { + ranges; + default default; + include geo-ranges.conf; + 192.0.2.0-192.0.2.255 test; + } + server { listen 127.0.0.1:8080; return "geo:$geo + geo_include:$geo_include geo_ranges:$geo_ranges + geo_ranges_include:$geo_ranges_include geo_from_addr:$geo_from_addr geo_from_var:$geo_from_var"; } @@ -92,13 +108,18 @@ EOF -$t->try_run('no stream geo')->plan(6); +$t->write_file('geo.conf', '127.0.0.0/8 loopback;'); +$t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;'); + +$t->try_run('no stream geo')->plan(8); ############################################################################### my %data = stream()->read() =~ /(\w+):(\w+)/g; is($data{geo}, 'loopback', 'geo'); +is($data{geo_include}, 'loopback', 'geo include'); is($data{geo_ranges}, 'loopback', 'geo ranges'); +is($data{geo_ranges_include}, 'loopback', 'geo ranges include'); is($data{geo_from_addr}, 'loopback', 'geo from addr'); is($data{geo_from_var}, 'test', 'geo from var');