annotate rewrite_set.t @ 540:481d705b8610

Tests: SSL support in mail backends. Socket is now embedded into every mail module. Socket methods are wrapped where appropriate. The new "SSL" extra flag specifies to accept connection over SSL.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 03 Apr 2015 00:11:38 +0300
parents a65cb9330c91
children 907e89fba9c3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
448
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for rewrite set.
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 use lib 'lib';
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 ###############################################################################
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http rewrite ssi/)->plan(4);
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27 $t->write_file_expand('nginx.conf', <<'EOF');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31 daemon off;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33 events {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 http {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39 server {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 listen 127.0.0.1:8080;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 server_name localhost;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 ssi on;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 location /t1 {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 set $http_foo "set_foo";
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47 return 200 'X<!--#echo var="http_foo" -->X';
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 location /t2 {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51 return 200 'X<!--#echo var="http_bar" -->X';
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 location /t3 {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55 return 200 'X<!--#echo var="http_baz" -->X';
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 location /t4 {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59 set $http_connection "bar";
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60 return 200 "X${http_connection}X\n";
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63 # set in other context
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64 location /other {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 set $http_bar "set_bar";
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
70 EOF
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72 $t->run();
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74 ###############################################################################
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
75
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
76 # prefixed variables
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
78 TODO: {
455
a65cb9330c91 Tests: adjusted resolver and rewrite TODOs.
Sergey Kandaurov <pluknet@nginx.com>
parents: 448
diff changeset
79 local $TODO = 'not yet' unless $t->has_version('1.7.5');
448
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
81 SKIP: {
455
a65cb9330c91 Tests: adjusted resolver and rewrite TODOs.
Sergey Kandaurov <pluknet@nginx.com>
parents: 448
diff changeset
82 skip 'leaves coredump', 2 unless $t->has_version('1.7.5')
a65cb9330c91 Tests: adjusted resolver and rewrite TODOs.
Sergey Kandaurov <pluknet@nginx.com>
parents: 448
diff changeset
83 or $ENV{TEST_NGINX_UNSAFE};
448
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85 like(http_get_extra('/t1.html', 'Foo: http_foo'), qr/Xset_fooX/,
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86 'set in this context');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87 like(http_get_extra('/t2.html', 'Bar: http_bar'), qr/Xhttp_barX/,
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88 'set in other context');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
89
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93 like(http_get_extra('/t3.html', 'Baz: http_baz'), qr/Xhttp_bazX/, 'not set');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
94
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
95 like(http_get('/t4.html'), qr/XbarX/, 'set get in return');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97 ###############################################################################
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
98
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
99 sub http_get_extra {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100 my ($uri, $extra) = @_;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
101 return http(<<EOF);
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
102 GET $uri HTTP/1.0
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
103 $extra
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
104
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
105 EOF
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
106 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
107
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108 ###############################################################################