comparison geo.t @ 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
comparison
equal deleted inserted replaced
1012:a0758fe11465 1013:8f92d97cf40e
1 #!/usr/bin/perl 1 #!/usr/bin/perl
2 2
3 # (C) Maxim Dounin 3 # (C) Maxim Dounin
4 # (C) Andrey Zelenkov
5 # (C) Nginx, Inc.
4 6
5 # Tests for nginx geo module. 7 # Tests for nginx geo module.
6 8
7 ############################################################################### 9 ###############################################################################
8 10
39 127.0.0.0/8 loopback; 41 127.0.0.0/8 loopback;
40 192.0.2.0/24 test; 42 192.0.2.0/24 test;
41 0.0.0.0/0 world; 43 0.0.0.0/0 world;
42 } 44 }
43 45
46 geo $geo_include {
47 include geo.conf;
48 192.0.2.0/24 test;
49 0.0.0.0/0 world;
50 }
51
44 geo $arg_ip $geo_from_arg { 52 geo $arg_ip $geo_from_arg {
45 default default; 53 default default;
46 127.0.0.0/8 loopback; 54 127.0.0.0/8 loopback;
47 192.0.2.0/24 test; 55 192.0.2.0/24 test;
48 } 56 }
67 default default; 75 default default;
68 127.0.0.0-127.255.255.255 loopback; 76 127.0.0.0-127.255.255.255 loopback;
69 192.0.2.0-192.0.2.255 test; 77 192.0.2.0-192.0.2.255 test;
70 } 78 }
71 79
80 geo $geo_ranges_include {
81 ranges;
82 default default;
83 include geo-ranges.conf;
84 192.0.2.0-192.0.2.255 test;
85 }
86
72 server { 87 server {
73 listen 127.0.0.1:8080; 88 listen 127.0.0.1:8080;
74 server_name localhost; 89 server_name localhost;
75 90
76 location / { 91 location / {
77 add_header X-IP $remote_addr; 92 add_header X-IP $remote_addr;
78 add_header X-Geo $geo; 93 add_header X-Geo $geo;
94 add_header X-Inc $geo_include;
79 add_header X-Ran $geo_ranges; 95 add_header X-Ran $geo_ranges;
96 add_header X-RIn $geo_ranges_include;
80 add_header X-Arg $geo_from_arg; 97 add_header X-Arg $geo_from_arg;
81 add_header X-XFF $geo_proxy; 98 add_header X-XFF $geo_proxy;
82 add_header X-XFR $geo_proxy_recursive; 99 add_header X-XFR $geo_proxy_recursive;
83 } 100 }
84 } 101 }
85 } 102 }
86 103
87 EOF 104 EOF
88 105
89 $t->write_file('1', ''); 106 $t->write_file('1', '');
107 $t->write_file('geo.conf', '127.0.0.0/8 loopback;');
108 $t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;');
109
90 $t->run(); 110 $t->run();
91 111
92 plan(skip_all => 'no 127.0.0.1 on host') 112 plan(skip_all => 'no 127.0.0.1 on host')
93 if http_get('/1') !~ /X-IP: 127.0.0.1/m; 113 if http_get('/1') !~ /X-IP: 127.0.0.1/m;
94 114
95 $t->plan(9); 115 $t->plan(11);
96 116
97 ############################################################################### 117 ###############################################################################
98 118
99 my $r = http_get('/1'); 119 my $r = http_get('/1');
100 like($r, qr/^X-Geo: loopback/m, 'geo'); 120 like($r, qr/^X-Geo: loopback/m, 'geo');
121 like($r, qr/^X-Inc: loopback/m, 'geo include');
101 like($r, qr/^X-Ran: loopback/m, 'geo ranges'); 122 like($r, qr/^X-Ran: loopback/m, 'geo ranges');
123 like($r, qr/^X-RIn: loopback/m, 'geo ranges include');
102 124
103 like(http_get('/1?ip=192.0.2.1'), qr/^X-Arg: test/m, 'geo from variable'); 125 like(http_get('/1?ip=192.0.2.1'), qr/^X-Arg: test/m, 'geo from variable');
104 like(http_get('/1?ip=10.0.0.1'), qr/^X-Arg: default/m, 'geo default'); 126 like(http_get('/1?ip=10.0.0.1'), qr/^X-Arg: default/m, 'geo default');
105 127
106 like(http_xff('192.0.2.1'), qr/^X-XFF: test/m, 'geo proxy'); 128 like(http_xff('192.0.2.1'), qr/^X-XFF: test/m, 'geo proxy');