annotate js_subrequests.t @ 1781:386748f328b1

Tests: updated js properties deprecated since 0.5.0.
author Dmitry Volyntsev <xeioex@nginx.com>
date Tue, 02 Aug 2022 20:35:05 -0700
parents f89770df737a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
46 js_import test.js;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
47
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
48 js_set $async_var test.async_var;
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
49 js_set $subrequest_var test.subrequest_var;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
50
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 server {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
52 listen 127.0.0.1:8080;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
53 server_name localhost;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
54
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
55 location /njs {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
56 js_content test.njs;
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
57 }
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
58
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
59 location /sr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
60 js_content test.sr;
1305
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
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
63 location /sr_pr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
64 js_content test.sr_pr;
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
65 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
66
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67 location /sr_args {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
68 js_content test.sr_args;
1305
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
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71 location /sr_options_args {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
72 js_content test.sr_options_args;
1305
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
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
75 location /sr_options_args_pr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
76 js_content test.sr_options_args_pr;
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
77 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
78
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79 location /sr_options_method {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
80 js_content test.sr_options_method;
1305
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
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
83 location /sr_options_method_pr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
84 js_content test.sr_options_method_pr;
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
85 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
86
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87 location /sr_options_body {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
88 js_content test.sr_options_body;
1305
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
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 location /sr_options_method_head {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
92 js_content test.sr_options_method_head;
1305
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
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
95 location /sr_body {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
96 js_content test.sr_body;
1305
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
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
99 location /sr_body_pr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
100 js_content test.sr_body_pr;
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
101 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
102
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
103 location /sr_body_special {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
104 js_content test.sr_body_special;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
105 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
106
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
107 location /sr_in_variable_handler {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
108 set $_ $async_var;
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
109 js_content test.sr_in_variable_handler;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
110 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
111
1554
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
112 location /sr_detached_in_variable_handler {
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
113 return 200 $subrequest_var;
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
114 }
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
115
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
116 location /sr_async_var {
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
117 set $_ $async_var;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
118 error_page 404 /return;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
119 return 404;
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
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
122 location /sr_error_page {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
123 js_content test.sr_error_page;
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
124 }
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
125
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
126 location /sr_js_in_subrequest {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
127 js_content test.sr_js_in_subrequest;
1305
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
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
130 location /sr_js_in_subrequest_pr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
131 js_content test.sr_js_in_subrequest_pr;
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
132 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
133
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
134 location /sr_file {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
135 js_content test.sr_file;
1305
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_cache {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
139 js_content test.sr_cache;
1305
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
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
143 location /sr_unavail {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
144 js_content test.sr_unavail;
1305
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
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
147 location /sr_unavail_pr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
148 js_content test.sr_unavail_pr;
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
149 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
150
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
151 location /sr_broken {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
152 js_content test.sr_broken;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
153 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
154
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
155 location /sr_too_large {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
156 js_content test.sr_too_large;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
157 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
158
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
159 location /sr_out_of_order {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
160 js_content test.sr_out_of_order;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
161 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
162
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
163 location /sr_except_not_a_func {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
164 js_content test.sr_except_not_a_func;
1305
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 /sr_except_failed_to_convert_options_arg {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
168 js_content test.sr_except_failed_to_convert_options_arg;
1305
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 /sr_except_invalid_options_header_only {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
172 js_content test.sr_except_invalid_options_header_only;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
173 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
174
1359
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
175 location /sr_in_sr_callback {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
176 js_content test.sr_in_sr_callback;
1359
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
177 }
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
178
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
179 location /sr_uri_except {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
180 js_content test.sr_uri_except;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
181 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
182
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 location /file/ {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
185 alias %%TESTDIR%%/;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
186 }
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 location /p/ {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
189 proxy_cache $arg_c;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
190 proxy_pass http://127.0.0.1:8081/;
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
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
193 location /daemon/ {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
194 proxy_pass http://127.0.0.1:8082/;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
195 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
196
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
197 location /too_large/ {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
198 subrequest_output_buffer_size 3;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
199 proxy_pass http://127.0.0.1:8081/;
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
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
202 location /sr_in_sr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
203 js_content test.sr_in_sr;
1305
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 location /unavail {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
207 proxy_pass http://127.0.0.1:8084/;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
208 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
209
1359
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
210 location /sr_parent {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
211 js_content test.sr_parent;
1359
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
212 }
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
213
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
214 location /js_sub {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
215 js_content test.js_sub;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
216 }
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 location /return {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
219 return 200 '["$request_method"]';
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
220 }
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
221
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
222 location /error_page_404 {
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
223 return 404;
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
224
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
225 error_page 404 /404.html;
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
226 }
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
227 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
228
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
229 server {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
230 listen 127.0.0.1:8081;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
231 server_name localhost;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
232
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
233 location /sub1 {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
234 add_header H $arg_h;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
235 return 206 '{"a": {"b": 1}}';
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
236 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
237
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
238 location /sub2 {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
239 return 404 '{"e": "msg"}';
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
240 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
241
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
242 location /method {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
243 return 200 '["$request_method"]';
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
244 }
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 location /body {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
247 js_content test.body;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
248 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
249
1554
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
250 location /detached {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
251 js_content test.detached;
1554
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
252 }
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
253
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
254 location /delayed {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
255 js_content test.delayed;
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
256 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
257 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
258
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
259 server {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
260 listen 127.0.0.1:8084;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
261 server_name localhost;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
262
1337
bab9dd2654c3 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1305
diff changeset
263 return 444;
bab9dd2654c3 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1305
diff changeset
264 }
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
265 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
266
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
267 EOF
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
268
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
269 $t->write_file('test.js', <<EOF);
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
270 function test_njs(r) {
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
271 r.return(200, njs.version);
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
272 }
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
273
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
274 function sr(r) {
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
275 subrequest_fn(r, ['/p/sub2'], ['uri', 'status'])
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
276 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
277
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
278 function sr_pr(r) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
279 r.subrequest('/p/sub1', 'h=xxx')
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
280 .then(reply => r.return(200, JSON.stringify({h:reply.headersOut.h})))
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
281 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
282
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
283 function sr_args(r) {
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
284 r.subrequest('/p/sub1', 'h=xxx', reply => {
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
285 r.return(200, JSON.stringify({h:reply.headersOut.h}));
1338
adb306c10169 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1337
diff changeset
286 });
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
287 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
288
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
289 function sr_options_args(r) {
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
290 r.subrequest('/p/sub1', {args:'h=xxx'}, reply => {
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
291 r.return(200, JSON.stringify({h:reply.headersOut.h}));
1338
adb306c10169 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1337
diff changeset
292 });
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
293 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
294
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
295 function sr_options_args_pr(r) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
296 r.subrequest('/p/sub1', {args:'h=xxx'})
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
297 .then(reply => r.return(200, JSON.stringify({h:reply.headersOut.h})))
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
298 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
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_options_method(r) {
1482
34e86a28cabd Tests: adapted js_subrequests.t to njs changes after 0.3.3.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1466
diff changeset
301 r.subrequest('/p/method', {method:r.args.m}, body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
302 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
303
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
304 function sr_options_method_pr(r) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
305 r.subrequest('/p/method', {method:r.args.m})
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
306 .then(body_fwd_cb);
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
307 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
308
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
309 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
310 r.subrequest('/p/body', {method:'POST', body:'["REQ-BODY"]'},
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
311 body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
312 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
313
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
314 function sr_options_method_head(r) {
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
315 r.subrequest('/p/method', {method:'HEAD'}, reply => {
1557
b194552fcc21 Tests: adapted js_subrequests.t to njs changes after 0.4.0.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1554
diff changeset
316 r.return(200, JSON.stringify({c:reply.status}));
1338
adb306c10169 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1337
diff changeset
317 });
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
318 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
319
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
320 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
321 r.subrequest('/p/sub1', body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
322 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
323
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
324 function sr_body_pr(r) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
325 r.subrequest('/p/sub1')
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
326 .then(body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
327 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
328
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
329 function sr_body_special(r) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
330 r.subrequest('/p/sub2', body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
331 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
332
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
333 function body(r) {
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
334 r.return(200, r.variables.request_body);
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 delayed(r) {
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
338 setTimeout(r => r.return(200), 100, r);
1554
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
339 }
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
340
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
341 function detached(r) {
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
342 var method = r.variables.request_method;
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
343 r.log(`DETACHED: \${method} args: \${r.variables.args}`);
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
344
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
345 r.return(200);
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
346 }
1305
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_in_variable_handler(r) {
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
349 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
350
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
351 function async_var(r) {
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
352 r.subrequest('/p/delayed', reply => {
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
353 r.return(200, JSON.stringify(["CB-VAR"]));
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
354 });
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
355
1338
adb306c10169 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1337
diff changeset
356 return "";
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
357 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
358
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
359 function sr_error_page(r) {
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
360 r.subrequest('/error_page_404')
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
361 .then(reply => {r.return(200, `reply.status:\${reply.status}`)});
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
362 }
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
363
1554
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
364 function subrequest_var(r) {
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
365 r.subrequest('/p/detached', {detached:true});
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
366 r.subrequest('/p/detached', {detached:true, args:'a=yyy',
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
367 method:'POST'});
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
368
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
369 return "subrequest_var";
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
370 }
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
371
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
372 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
373 r.subrequest('/file/t', body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
374 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
375
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
376 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
377 r.subrequest('/p/t', body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
378 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
379
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
380 function sr_unavail(req) {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
381 subrequest_fn(req, ['/unavail'], ['uri', 'status']);
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
382 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
383
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
384 function sr_unavail_pr(req) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
385 subrequest_fn_pr(req, ['/unavail'], ['uri', 'status']);
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
386 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
387
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
388 function sr_broken(r) {
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
389 r.subrequest('/daemon/unfinished', reply => {
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
390 r.return(200, JSON.stringify({code:reply.status}));
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
391 });
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
392 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
393
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
394 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
395 r.subrequest('/too_large/t', body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
396 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
397
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
398 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
399 r.subrequest('/sr', body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
400 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
401
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
402 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
403 r.subrequest('/js_sub', body_fwd_cb);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
404 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
405
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
406 function sr_js_in_subrequest_pr(r) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
407 r.subrequest('/js_sub')
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
408 .then(body_fwd_cb);
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
409 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
410
1359
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
411 function sr_in_sr_callback(r) {
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
412 r.subrequest('/return', function (reply) {
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
413 try {
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
414 reply.subrequest('/return');
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
415
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
416 } catch (err) {
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
417 r.return(200, JSON.stringify({e:err.message}));
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
418 return;
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
419 }
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
420
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
421 r.return(200);
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
422 });
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
423 }
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
424
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
425 function sr_parent(r) {
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
426 try {
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
427 var parent = r.parent;
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
428
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
429 } catch (err) {
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
430 r.return(200, JSON.stringify({e:err.message}));
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
431 return;
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
432 }
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
433
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
434 r.return(200);
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
435 }
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
436
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
437 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
438 subrequest_fn(r, ['/p/delayed', '/p/sub1', '/unknown'],
1338
adb306c10169 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1337
diff changeset
439 ['uri', 'status']);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
440 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
441
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
442 function collect(replies, props, total, reply) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
443 reply.log(`subrequest handler: \${reply.uri} status: \${reply.status}`)
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
444
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
445 var rep = {};
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
446 props.forEach(p => {rep[p] = reply[p]});
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
447
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
448 replies.push(rep);
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
449
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
450 if (replies.length == total) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
451 reply.parent.return(200, JSON.stringify(replies));
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
452 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
453 }
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
454
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
455 function subrequest_fn(r, subs, props) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
456 var replies = [];
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
457
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
458 subs.forEach(sr =>
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
459 r.subrequest(sr, collect.bind(null, replies,
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
460 props, subs.length)));
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
461 }
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
462
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
463 function subrequest_fn_pr(r, subs, props) {
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
464 var replies = [];
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
465
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
466 subs.forEach(sr => r.subrequest(sr)
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
467 .then(collect.bind(null, replies, props, subs.length)));
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
468 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
469
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
470 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
471 r.subrequest('/sub1', 'a=1', 'b');
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
472 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
473
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
474 let Failed = {get toConvert() { return {toString(){return {};}}}};
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
475
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
476 function sr_except_failed_to_convert_options_arg(r) {
1567
726877fc4b08 Tests: fixed js_subrequest.t compatibility to 0.3.7.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1557
diff changeset
477 r.subrequest('/sub1', {args:Failed.toConvert}, ()=>{});
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
478 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
479
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
480 function sr_uri_except(r) {
1567
726877fc4b08 Tests: fixed js_subrequest.t compatibility to 0.3.7.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1557
diff changeset
481 r.subrequest(Failed.toConvert, 'a=1', 'b');
1305
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
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
484 function body_fwd_cb(r) {
1781
386748f328b1 Tests: updated js properties deprecated since 0.5.0.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1776
diff changeset
485 r.parent.return(200, JSON.stringify(JSON.parse(r.responseText)));
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
486 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
487
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
488 function js_sub(r) {
1543
0b97d431571f Tests: get rid of outdated API in js_subrequest.t.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1533
diff changeset
489 r.return(200, '["JS-SUB"]');
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
490 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
491
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
492 export default {njs:test_njs, sr, sr_pr, sr_args, sr_options_args,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
493 sr_options_args_pr, sr_options_method, sr_options_method_pr,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
494 sr_options_method_head, sr_options_body, sr_body,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
495 sr_body_pr, sr_body_special, body, delayed, detached,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
496 sr_in_variable_handler, async_var, sr_error_page,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
497 subrequest_var, sr_file, sr_cache, sr_unavail, sr_parent,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
498 sr_unavail_pr, sr_broken, sr_too_large, sr_in_sr,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
499 sr_js_in_subrequest, sr_js_in_subrequest_pr, js_sub,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
500 sr_in_sr_callback, sr_out_of_order, sr_except_not_a_func,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
501 sr_uri_except, sr_except_failed_to_convert_options_arg};
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1693
diff changeset
502
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
503 EOF
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
504
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
505 $t->write_file('t', '["SEE-THIS"]');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
506
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
507 $t->try_run('no njs available')->plan(32);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
508 $t->run_daemon(\&http_daemon);
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
509
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
510 ###############################################################################
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
511
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
512 is(get_json('/sr'), '[{"status":404,"uri":"/p/sub2"}]', 'sr');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
513 is(get_json('/sr_args'), '{"h":"xxx"}', 'sr_args');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
514 is(get_json('/sr_options_args'), '{"h":"xxx"}', 'sr_options_args');
1482
34e86a28cabd Tests: adapted js_subrequests.t to njs changes after 0.3.3.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1466
diff changeset
515 is(get_json('/sr_options_method?m=POST'), '["POST"]', 'sr method POST');
34e86a28cabd Tests: adapted js_subrequests.t to njs changes after 0.3.3.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1466
diff changeset
516 is(get_json('/sr_options_method?m=PURGE'), '["PURGE"]', 'sr method PURGE');
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
517 is(get_json('/sr_options_body'), '["REQ-BODY"]', 'sr_options_body');
1557
b194552fcc21 Tests: adapted js_subrequests.t to njs changes after 0.4.0.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1554
diff changeset
518 is(get_json('/sr_options_method_head'), '{"c":200}', 'sr_options_method_head');
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
519 is(get_json('/sr_body'), '{"a":{"b":1}}', 'sr_body');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
520 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
521 is(get_json('/sr_in_variable_handler'), '["CB-VAR"]', 'sr_in_variable_handler');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
522 is(get_json('/sr_file'), '["SEE-THIS"]', 'sr_file');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
523 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
524 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
525 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
526 is(get_json('/sr_unavail'), '[{"status":502,"uri":"/unavail"}]',
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
527 'sr_unavail');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
528 is(get_json('/sr_out_of_order'),
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
529 '[{"status":404,"uri":"/unknown"},' .
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
530 '{"status":206,"uri":"/p/sub1"},' .
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
531 '{"status":200,"uri":"/p/delayed"}]',
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
532 'sr_multi');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
533
1545
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
534 is(get_json('/sr_pr'), '{"h":"xxx"}', 'sr_promise');
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
535 is(get_json('/sr_options_args_pr'), '{"h":"xxx"}', 'sr_options_args_pr');
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
536 is(get_json('/sr_options_method_pr?m=PUT'), '["PUT"]', 'sr method PUT');
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
537 is(get_json('/sr_body_pr'), '{"a":{"b":1}}', 'sr_body_pr');
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
538 is(get_json('/sr_js_in_subrequest_pr'), '["JS-SUB"]', 'sr_js_in_subrequest_pr');
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
539 is(get_json('/sr_unavail_pr'), '[{"status":502,"uri":"/unavail"}]',
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
540 'sr_unavail_pr');
cde406e61e48 Tests: adapted js_subrequests.t to njs changes after 0.3.8.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1544
diff changeset
541
1554
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
542 like(http_get('/sr_detached_in_variable_handler'), qr/subrequest_var/,
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
543 'sr_detached_in_variable_handler');
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
544
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
545 like(http_get('/sr_error_page'), qr/reply\.status:404/,
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
546 'sr_error_page');
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
547
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
548 http_get('/sr_broken');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
549 http_get('/sr_in_sr');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
550 http_get('/sr_in_variable_handler');
1616
cd0461e1e392 Tests: added js subrequest test with error_page redirect.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
551 http_get('/sr_async_var');
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
552 http_get('/sr_too_large');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
553 http_get('/sr_except_not_a_func');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
554 http_get('/sr_except_failed_to_convert_options_arg');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
555 http_get('/sr_uri_except');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
556
1359
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
557 is(get_json('/sr_in_sr_callback'),
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
558 '{"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
559 'subrequest for non-primary request');
28ba4b465635 Tests: more njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1339
diff changeset
560
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
561 $t->stop();
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
562
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
563 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
564 'subrequest cb exception');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
565 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
566 'subrequest uri exception');
1567
726877fc4b08 Tests: fixed js_subrequest.t compatibility to 0.3.7.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1557
diff changeset
567 ok(index($t->read_file('error.log'), 'failed to convert options.args') > 0,
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
568 'subrequest invalid args exception');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
569 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
570 'subrequest too large body');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
571 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
572 'subrequest creation failed');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
573 ok(index($t->read_file('error.log'),
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
574 'js subrequest: failed to get the parent context') > 0,
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
575 'zero parent ctx');
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
576
1554
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
577 ok(index($t->read_file('error.log'), 'DETACHED') > 0,
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
578 'detached subrequest');
cae83c98654a Tests: added detached subrequest js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1553
diff changeset
579
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
580 ###############################################################################
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
581
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
582 sub recode {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
583 my $json;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
584 eval { $json = JSON::PP::decode_json(shift) };
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 if ($@) {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
587 return "<failed to parse JSON>";
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
588 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
589
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
590 JSON::PP->new()->canonical()->encode($json);
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
591 }
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 sub get_json {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
594 http_get(shift) =~ /\x0d\x0a?\x0d\x0a?(.*)/ms;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
595 recode($1);
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
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
598 ###############################################################################
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 sub http_daemon {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
601 my $server = IO::Socket::INET->new(
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
602 Proto => 'tcp',
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
603 LocalAddr => '127.0.0.1:' . port(8082),
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
604 Listen => 5,
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
605 Reuse => 1
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 or die "Can't create listening socket: $!\n";
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
608
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
609 local $SIG{PIPE} = 'IGNORE';
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
610
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
611 while (my $client = $server->accept()) {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
612 $client->autoflush(1);
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
613
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
614 my $headers = '';
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
615 my $uri = '';
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
616
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
617 while (<$client>) {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
618 $headers .= $_;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
619 last if (/^\x0d?\x0a?$/);
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
620 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
621
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
622 $uri = $1 if $headers =~ /^\S+\s+([^ ]+)\s+HTTP/i;
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
623
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
624 if ($uri eq '/unfinished') {
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
625 print $client
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
626 "HTTP/1.1 200 OK" . CRLF .
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
627 "Transfer-Encoding: chunked" . CRLF .
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
628 "Content-Length: 100" . CRLF .
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
629 CRLF .
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
630 "unfinished" . CRLF;
1338
adb306c10169 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1337
diff changeset
631 close($client);
1305
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
632 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
633 }
8e593b068fc0 Tests: added njs subrequest tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
634 }
1338
adb306c10169 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1337
diff changeset
635
adb306c10169 Tests: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1337
diff changeset
636 ###############################################################################