annotate js_subrequests.t @ 1836:74cffa9d4c43

Tests: enabled session reuse via TLS session tickets. This fixes tests with TLSv1.3 enabled when using BoringSSL, since for TLSv1.3 it only supports session reuse via TLS session tickets, and not server-side session cache.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 23 Mar 2023 19:50:02 +0300
parents 386748f328b1
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 ###############################################################################