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
+++ 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');
--- 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');