Mercurial > hg > nginx-tests
annotate map.t @ 431:05c46688b54b
Tests: ssl_password_file.t fixes.
Make sure to always specify listen socket in all servers as the
default vary (under root, nginx will try to listen on 80). Make sure
to detect if an https request was processed by http.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 09 Jul 2014 05:19:51 +0400 |
parents | 6a0d934950bc |
children | 1f8e15e1899a |
rev | line source |
---|---|
227
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 # Tests for map module. |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 ############################################################################### |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 use warnings; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 use strict; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
12 use Test::More; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
14 BEGIN { use FindBin; chdir($FindBin::Bin); } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
15 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
16 use lib 'lib'; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
17 use Test::Nginx; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
18 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
19 ############################################################################### |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
21 select STDERR; $| = 1; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
22 select STDOUT; $| = 1; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
23 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
24 my $t = Test::Nginx->new()->has(qw/http map/)->plan(5); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
25 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
26 $t->write_file_expand('nginx.conf', <<'EOF'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
27 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
28 %%TEST_GLOBALS%% |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
29 |
249
6a0d934950bc
Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents:
241
diff
changeset
|
30 daemon off; |
227
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
31 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
32 events { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
33 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
34 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
35 http { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
36 %%TEST_GLOBALS_HTTP%% |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
37 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
38 map $args $x { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
39 default 0; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
40 foo bar; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
41 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
42 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
43 map $args $y { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
44 hostnames; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
45 default 0; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
46 example.com foo; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
47 example.* wildcard; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
48 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
49 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
50 server { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
51 listen 127.0.0.1:8080; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
52 server_name localhost; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
53 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
54 location / { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
55 add_header X-Foo "x:$x y:$y\n"; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
57 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
58 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
59 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
60 EOF |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
61 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
62 $t->write_file('index.html', ''); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
63 $t->run(); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
64 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
65 ############################################################################### |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
66 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
67 like(http_get('/?1'), qr/x:0 y:0/, 'map default'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
68 like(http_get('/?foo'), qr/x:bar y:0/, 'map foo bar'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
69 like(http_get('/?example.com'), qr/x:0 y:foo/, 'map example.com foo'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
70 like(http_get('/?example.org'), qr/x:0 y:wild/, 'map example.org wildcard'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
71 like(http_get('/?example.com.'), qr/x:0 y:foo/, 'map example.com. foo'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
72 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
73 ############################################################################### |