Mercurial > hg > nginx-tests
annotate js_subrequests.t @ 1477:8b122b35703b
Tests: fixed session reuse tests in ssl_certificate.t with TLSv1.3.
Previously, session data was retrieved too early, before server passed
application data, which usually means NewSessionTicket is not yet sent.
The fix is to ask server for application data, then retrieve a session.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 20 May 2019 16:00:40 +0300 |
parents | 95951c72e721 |
children | 34e86a28cabd |
rev | line source |
---|---|
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
2 # |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
3 # (C) Dmitry Volyntsev. |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
5 |
1375
f168fc46c7a4
Tests: renamed JavaScript to njs.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1359
diff
changeset
|
6 # Tests for subrequests in http njs module. |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
7 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
9 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
11 use strict; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
12 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
14 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
15 use Socket qw/ CRLF /; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
16 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
17 BEGIN { use FindBin; chdir($FindBin::Bin); } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
18 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
19 use lib 'lib'; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
20 use Test::Nginx; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
21 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
22 ############################################################################### |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
23 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
24 select STDERR; $| = 1; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
25 select STDOUT; $| = 1; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
26 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
27 eval { require JSON::PP; }; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
28 plan(skip_all => "JSON::PP not installed") if $@; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
29 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
30 my $t = Test::Nginx->new()->has(qw/http rewrite proxy cache/) |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
31 ->write_file_expand('nginx.conf', <<'EOF'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
32 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
33 %%TEST_GLOBALS%% |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
34 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
35 daemon off; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
36 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
37 events { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
38 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
39 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
40 http { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
41 %%TEST_GLOBALS_HTTP%% |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
42 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
43 proxy_cache_path %%TESTDIR%%/cache1 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
44 keys_zone=ON:1m use_temp_path=on; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
45 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
46 js_include test.js; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
47 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
48 js_set $async_var async_var; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
49 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
50 server { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
51 listen 127.0.0.1:8080; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
52 server_name localhost; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
53 |
1359
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
54 location /njs { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
55 js_content test_njs; |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
56 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
57 |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
58 location /sr { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
59 js_content sr; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
60 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
61 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
62 location /sr_args { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
63 js_content sr_args; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
64 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
65 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
66 location /sr_options_args { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
67 js_content sr_options_args; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
68 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
69 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
70 location /sr_options_method { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
71 js_content sr_options_method; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
72 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
73 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
74 location /sr_options_body { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
75 js_content sr_options_body; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
76 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
77 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
78 location /sr_options_method_head { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
79 js_content sr_options_method_head; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
80 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
81 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
82 location /sr_body { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
83 js_content sr_body; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
84 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
85 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
86 location /sr_body_special { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
87 js_content sr_body_special; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
88 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
89 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
90 location /sr_background { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
91 js_content sr_background; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
92 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
93 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
94 location /sr_in_variable_handler { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
95 set $_ $async_var; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
96 js_content sr_in_variable_handler; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
97 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
98 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
99 location /sr_error_page { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
100 set $_ $async_var; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
101 error_page 404 /return; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
102 return 404; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
103 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
104 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
105 location /sr_js_in_subrequest { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
106 js_content sr_js_in_subrequest; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
107 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
108 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
109 location /sr_file { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
110 js_content sr_file; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
111 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
112 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
113 location /sr_cache { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
114 js_content sr_cache; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
115 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
116 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
117 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
118 location /sr_unavail { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
119 js_content sr_unavail; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
120 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
121 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
122 location /sr_broken { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
123 js_content sr_broken; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
124 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
125 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
126 location /sr_too_large { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
127 js_content sr_too_large; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
128 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
129 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
130 location /sr_out_of_order { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
131 js_content sr_out_of_order; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
132 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
133 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
134 location /sr_except_not_a_func { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
135 js_content sr_except_not_a_func; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
136 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
137 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
138 location /sr_except_failed_to_convert_arg { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
139 js_content sr_except_failed_to_convert_arg; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
140 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
141 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
142 location /sr_except_failed_to_convert_options_arg { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
143 js_content sr_except_failed_to_convert_options_arg; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
144 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
145 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
146 location /sr_except_invalid_options_method { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
147 js_content sr_except_invalid_options_method; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
148 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
149 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
150 location /sr_except_invalid_options_header_only { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
151 js_content sr_except_invalid_options_header_only; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
152 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
153 |
1359
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
154 location /sr_js_in_sr_parent { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
155 js_content sr_js_in_sr_parent; |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
156 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
157 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
158 location /sr_in_sr_callback { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
159 js_content sr_in_sr_callback; |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
160 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
161 |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
162 location /sr_uri_except { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
163 js_content sr_uri_except; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
164 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
165 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
166 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
167 location /file/ { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
168 alias %%TESTDIR%%/; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
169 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
170 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
171 location /p/ { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
172 proxy_cache $arg_c; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
173 proxy_pass http://127.0.0.1:8081/; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
174 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
175 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
176 location /daemon/ { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
177 proxy_pass http://127.0.0.1:8082/; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
178 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
179 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
180 location /too_large/ { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
181 subrequest_output_buffer_size 3; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
182 proxy_pass http://127.0.0.1:8081/; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
183 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
184 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
185 location /sr_in_sr { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
186 js_content sr_in_sr; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
187 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
188 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
189 location /unavail { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
190 proxy_pass http://127.0.0.1:8084/; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
191 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
192 |
1359
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
193 location /sr_parent { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
194 js_content sr_parent; |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
195 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
196 |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
197 location /js_sub { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
198 js_content js_sub; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
199 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
200 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
201 location /return { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
202 return 200 '["$request_method"]'; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
203 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
204 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
205 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
206 server { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
207 listen 127.0.0.1:8081; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
208 server_name localhost; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
209 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
210 location /sub1 { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
211 add_header H $arg_h; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
212 return 206 '{"a": {"b": 1}}'; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
213 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
214 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
215 location /sub2 { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
216 return 404 '{"e": "msg"}'; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
217 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
218 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
219 location /method { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
220 return 200 '["$request_method"]'; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
221 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
222 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
223 location /body { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
224 js_content body; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
225 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
226 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
227 location /background { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
228 js_content background; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
229 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
230 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
231 location /delayed { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
232 js_content delayed; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
233 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
234 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
235 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
236 server { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
237 listen 127.0.0.1:8084; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
238 server_name localhost; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
239 |
1337 | 240 return 444; |
241 } | |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
242 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
243 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
244 EOF |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
245 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
246 $t->write_file('test.js', <<EOF); |
1359
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
247 function test_njs(r) { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
248 r.return(200, njs.version); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
249 } |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
250 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
251 function sr(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
252 subrequest_fn(r, ['/p/sub2'], ['uri', 'status']) |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
253 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
254 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
255 function sr_args(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
256 r.subrequest('/p/sub1', 'h=xxx', function(reply) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
257 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
258 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
259 r.send(JSON.stringify({h:reply.headersOut.h})) |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
260 r.finish(); |
1338 | 261 }); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
262 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
263 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
264 function sr_options_args(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
265 r.subrequest('/p/sub1', {args:'h=xxx'}, function(reply) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
266 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
267 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
268 r.send(JSON.stringify({h:reply.headersOut.h})) |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
269 r.finish(); |
1338 | 270 }); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
271 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
272 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
273 function sr_options_method(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
274 r.subrequest('/p/method', {method:'POST'}, body_fwd_cb); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
275 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
276 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
277 function sr_options_body(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
278 r.subrequest('/p/body', {method:'POST', body:'["REQ-BODY"]'}, |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
279 body_fwd_cb); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
280 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
281 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
282 function sr_options_method_head(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
283 r.subrequest('/p/method', {method:'HEAD'}, function(reply) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
284 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
285 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
286 r.send(JSON.stringify({c:reply.status, |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
287 s:reply.responseBody.length})) |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
288 r.finish(); |
1338 | 289 }); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
290 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
291 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
292 function sr_body(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
293 r.subrequest('/p/sub1', body_fwd_cb); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
294 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
295 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
296 function sr_body_special(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
297 r.subrequest('/p/sub2', body_fwd_cb); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
298 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
299 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
300 function sr_background(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
301 r.subrequest('/p/background'); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
302 r.subrequest('/p/background', 'a=xxx'); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
303 r.subrequest('/p/background', {args: 'a=yyy', method:'POST'}); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
304 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
305 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
306 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
307 r.finish(); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
308 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
309 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
310 function body(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
311 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
312 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
313 r.send(r.variables.request_body); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
314 r.finish(); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
315 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
316 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
317 function delayed(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
318 setTimeout(function(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
319 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
320 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
321 r.finish(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
322 }, 100, r); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
323 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
324 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
325 function background(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
326 r.log("BACKGROUND: " + r.variables.request_method |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
327 + " args: " + r.variables.args); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
328 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
329 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
330 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
331 r.finish(); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
332 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
333 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
334 function sr_in_variable_handler(r) { |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
335 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
336 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
337 function async_var(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
338 r.subrequest('/p/delayed', function(reply) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
339 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
340 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
341 r.send(JSON.stringify(["CB-VAR"])) |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
342 r.finish(); |
1338 | 343 }) |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
344 |
1338 | 345 return ""; |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
346 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
347 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
348 function sr_file(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
349 r.subrequest('/file/t', body_fwd_cb); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
350 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
351 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
352 function sr_cache(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
353 r.subrequest('/p/t', body_fwd_cb); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
354 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
355 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
356 function sr_unavail(req) { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
357 subrequest_fn(req, ['/unavail'], ['uri', 'status']); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
358 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
359 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
360 function sr_broken(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
361 r.subrequest('/daemon/unfinished', |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
362 function(reply) { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
363 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
364 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
365 r.send(JSON.stringify({code:reply.status})) |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
366 r.finish(); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
367 }); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
368 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
369 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
370 function sr_too_large(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
371 r.subrequest('/too_large/t', body_fwd_cb); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
372 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
373 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
374 function sr_in_sr(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
375 r.subrequest('/sr', body_fwd_cb); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
376 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
377 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
378 function sr_js_in_subrequest(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
379 r.subrequest('/js_sub', body_fwd_cb); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
380 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
381 |
1359
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
382 function sr_js_in_sr_parent(r) { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
383 r.subrequest('/sr_parent', body_fwd_cb); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
384 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
385 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
386 function sr_in_sr_callback(r) { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
387 r.subrequest('/return', function (reply) { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
388 try { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
389 reply.subrequest('/return'); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
390 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
391 } catch (err) { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
392 r.return(200, JSON.stringify({e:err.message})); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
393 return; |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
394 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
395 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
396 r.return(200); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
397 }); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
398 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
399 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
400 function sr_parent(r) { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
401 try { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
402 var parent = r.parent; |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
403 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
404 } catch (err) { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
405 r.return(200, JSON.stringify({e:err.message})); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
406 return; |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
407 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
408 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
409 r.return(200); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
410 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
411 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
412 function sr_out_of_order(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
413 subrequest_fn(r, ['/p/delayed', '/p/sub1', '/unknown'], |
1338 | 414 ['uri', 'status']); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
415 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
416 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
417 function subrequest_fn(r, subs, props) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
418 var rep, replies = []; |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
419 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
420 subs.forEach(function(sr) { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
421 r.subrequest(sr, function(reply) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
422 r.log("subrequest handler: " + reply.uri |
1338 | 423 + " status: " + reply.status) |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
424 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
425 rep = {}; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
426 props.forEach(function (p) {rep[p] = reply[p]}); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
427 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
428 replies.push(rep); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
429 |
1338 | 430 if (replies.length == subs.length) { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
431 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
432 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
433 r.send(JSON.stringify(replies)); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
434 r.finish(); |
1338 | 435 } |
436 }); | |
437 }); | |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
438 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
439 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
440 function sr_except_not_a_func(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
441 r.subrequest('/sub1', 'a=1', 'b'); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
442 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
443 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
444 function sr_except_failed_to_convert_arg(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
445 r.subrequest('/sub1', r.args, function(){}); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
446 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
447 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
448 function sr_except_failed_to_convert_options_arg(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
449 r.subrequest('/sub1', {args:r.args}, function(){}); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
450 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
451 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
452 function sr_except_invalid_options_method(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
453 r.subrequest('/sub1', {method:'UNKNOWN_METHOD'}, function(){}); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
454 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
455 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
456 function sr_uri_except(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
457 r.subrequest(r, 'a=1', 'b'); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
458 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
459 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
460 function body_fwd_cb(reply) { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
461 var p = reply.parent; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
462 p.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
463 p.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
464 p.send(JSON.stringify(JSON.parse(reply.responseBody))); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
465 p.finish(); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
466 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
467 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
468 function js_sub(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
469 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
470 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
471 r.send('["JS-SUB"]'); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
472 r.finish(); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
473 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
474 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
475 EOF |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
476 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
477 $t->write_file('t', '["SEE-THIS"]'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
478 |
1359
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
479 $t->try_run('no njs available')->plan(25); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
480 $t->run_daemon(\&http_daemon); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
481 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
482 ############################################################################### |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
483 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
484 is(get_json('/sr'), '[{"status":404,"uri":"/p/sub2"}]', 'sr'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
485 is(get_json('/sr_args'), '{"h":"xxx"}', 'sr_args'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
486 is(get_json('/sr_options_args'), '{"h":"xxx"}', 'sr_options_args'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
487 is(get_json('/sr_options_method'), '["POST"]', 'sr_options_method'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
488 is(get_json('/sr_options_body'), '["REQ-BODY"]', 'sr_options_body'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
489 is(get_json('/sr_options_method_head'), '{"c":200,"s":0}', |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
490 'sr_options_method_head'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
491 is(get_json('/sr_body'), '{"a":{"b":1}}', 'sr_body'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
492 is(get_json('/sr_body_special'), '{"e":"msg"}', 'sr_body_special'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
493 is(get_json('/sr_in_variable_handler'), '["CB-VAR"]', 'sr_in_variable_handler'); |
1466
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
494 |
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
495 $t->todo_alerts() if $t->read_file('nginx.conf') =~ /aio (on|threads)/; |
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
496 |
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
497 TODO: { |
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
498 local $TODO = 'header already sent' if $t->read_file('nginx.conf') =~ /aio on/; |
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
499 local $TODO = 'open socket left' if $t->read_file('nginx.conf') =~ /aio thread/; |
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
500 |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
501 is(get_json('/sr_file'), '["SEE-THIS"]', 'sr_file'); |
1466
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
502 |
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
503 } |
95951c72e721
Tests: use TODO for js_subrequests.t sr_file + aio test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1436
diff
changeset
|
504 |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
505 is(get_json('/sr_cache?c=1'), '["SEE-THIS"]', 'sr_cache'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
506 is(get_json('/sr_cache?c=1'), '["SEE-THIS"]', 'sr_cached'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
507 is(get_json('/sr_js_in_subrequest'), '["JS-SUB"]', 'sr_js_in_subrequest'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
508 is(get_json('/sr_unavail'), '[{"status":502,"uri":"/unavail"}]', |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
509 'sr_unavail'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
510 is(get_json('/sr_out_of_order'), |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
511 '[{"status":404,"uri":"/unknown"},' . |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
512 '{"status":206,"uri":"/p/sub1"},' . |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
513 '{"status":200,"uri":"/p/delayed"}]', |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
514 'sr_multi'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
515 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
516 http_get('/sr_background'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
517 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
518 http_get('/sr_broken'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
519 http_get('/sr_in_sr'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
520 http_get('/sr_in_variable_handler'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
521 http_get('/sr_error_page'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
522 http_get('/sr_too_large'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
523 http_get('/sr_except_not_a_func'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
524 http_get('/sr_except_failed_to_convert_arg'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
525 http_get('/sr_except_failed_to_convert_options_arg'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
526 http_get('/sr_except_invalid_options_method'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
527 http_get('/sr_uri_except'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
528 |
1359
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
529 TODO: { |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
530 local $TODO = 'not yet' |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
531 unless http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.2.4'; |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
532 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
533 is(get_json('/sr_js_in_sr_parent'), |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
534 '{"e":"parent can only be returned for a subrequest"}', |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
535 'parent in subrequest js_content'); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
536 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
537 todo_skip 'leaves coredump', 1 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
538 unless http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.2.4'; |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
539 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
540 is(get_json('/sr_in_sr_callback'), |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
541 '{"e":"subrequest can only be created for the primary request"}', |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
542 'subrequest for non-primary request'); |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
543 |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
544 } |
28ba4b465635
Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1339
diff
changeset
|
545 |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
546 $t->stop(); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
547 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
548 ok(index($t->read_file('error.log'), 'callback is not a function') > 0, |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
549 'subrequest cb exception'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
550 ok(index($t->read_file('error.log'), 'failed to convert uri arg') > 0, |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
551 'subrequest uri exception'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
552 ok(index($t->read_file('error.log'), 'failed to convert args') > 0, |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
553 'subrequest invalid args exception'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
554 ok(index($t->read_file('error.log'), 'unknown method "UNKNOWN_METHOD"') > 0, |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
555 'subrequest unknown method exception'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
556 ok(index($t->read_file('error.log'), 'BACKGROUND') > 0, |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
557 'background subrequest'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
558 ok(index($t->read_file('error.log'), 'too big subrequest response') > 0, |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
559 'subrequest too large body'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
560 ok(index($t->read_file('error.log'), 'subrequest creation failed') > 0, |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
561 'subrequest creation failed'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
562 ok(index($t->read_file('error.log'), |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
563 'js subrequest: failed to get the parent context') > 0, |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
564 'zero parent ctx'); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
565 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
566 ############################################################################### |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
567 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
568 sub recode { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
569 my $json; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
570 eval { $json = JSON::PP::decode_json(shift) }; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
571 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
572 if ($@) { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
573 return "<failed to parse JSON>"; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
574 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
575 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
576 JSON::PP->new()->canonical()->encode($json); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
577 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
578 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
579 sub get_json { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
580 http_get(shift) =~ /\x0d\x0a?\x0d\x0a?(.*)/ms; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
581 recode($1); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
582 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
583 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
584 ############################################################################### |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
585 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
586 sub http_daemon { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
587 my $server = IO::Socket::INET->new( |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
588 Proto => 'tcp', |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
589 LocalAddr => '127.0.0.1:' . port(8082), |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
590 Listen => 5, |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
591 Reuse => 1 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
592 ) |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
593 or die "Can't create listening socket: $!\n"; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
594 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
595 local $SIG{PIPE} = 'IGNORE'; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
596 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
597 while (my $client = $server->accept()) { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
598 $client->autoflush(1); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
599 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
600 my $headers = ''; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
601 my $uri = ''; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
602 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
603 while (<$client>) { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
604 $headers .= $_; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
605 last if (/^\x0d?\x0a?$/); |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
606 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
607 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
608 $uri = $1 if $headers =~ /^\S+\s+([^ ]+)\s+HTTP/i; |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
609 |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
610 if ($uri eq '/unfinished') { |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
611 print $client |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
612 "HTTP/1.1 200 OK" . CRLF . |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
613 "Transfer-Encoding: chunked" . CRLF . |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
614 "Content-Length: 100" . CRLF . |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
615 CRLF . |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
616 "unfinished" . CRLF; |
1338 | 617 close($client); |
1305
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
618 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
619 } |
8e593b068fc0
Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
620 } |
1338 | 621 |
622 ############################################################################### |