Mercurial > hg > nginx-tests
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'); |