# HG changeset patch # User Andrey Zelenkov # Date 1472218268 -10800 # Node ID 8f92d97cf40ecc93843394dbc0de8bfcf85fbe73 # Parent a0758fe11465fce9521086527bb2df7018917c7b Tests: geo include tests. diff --git a/geo.t b/geo.t --- a/geo.t +++ b/geo.t @@ -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 @@ http { 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 @@ http { 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 @@ http { 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 @@ http { 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'); diff --git a/stream_geo.t b/stream_geo.t --- a/stream_geo.t +++ b/stream_geo.t @@ -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 @@ stream { 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 @@ stream { 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 @@ stream { 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');