Mercurial > hg > nginx-tests
annotate js.t @ 1829:a78c32419f02
Tests: separate SSL session reuse tests.
Instead of being mixed with generic SSL tests, session reuse variants
are now tested in a separate file.
In the generic SSL tests only basic session reuse is now tested,
notably with session tickets enabled and a shared SSL session cache.
This should make it possible to reuse sessions in all cases (except
when it's not supported, such as with LibreSSL with TLSv1.3).
Note that session reuse with tickets implies that $ssl_session_id
is selected by the client and therefore is not available on the
initial connection. Relevant test is modified to handle this.
Further, BoringSSL does not use legacy session ID with TLSv1.3 even
if it is sent by the client. In contrast, OpenSSL always generates
an unique legacy session id, so it is available with TLSv1.3 even if
session resumption does not work (such as with old Net::SSLeay and
IO::Socket::SSL modules).
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 23 Mar 2023 19:49:47 +0300 |
parents | 520fb74cce4c |
children |
rev | line source |
---|---|
708 | 1 #!/usr/bin/perl |
2 | |
3 # (C) Roman Arutyunyan | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
4 # (C) Dmitry Volyntsev |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
5 # (C) Nginx, Inc. |
708 | 6 |
1375
f168fc46c7a4
Tests: renamed JavaScript to njs.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1336
diff
changeset
|
7 # Tests for http njs module. |
708 | 8 |
9 ############################################################################### | |
10 | |
11 use warnings; | |
12 use strict; | |
13 | |
14 use Test::More; | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
15 use Socket qw/ CRLF /; |
708 | 16 |
17 BEGIN { use FindBin; chdir($FindBin::Bin); } | |
18 | |
19 use lib 'lib'; | |
20 use Test::Nginx; | |
21 | |
22 ############################################################################### | |
23 | |
24 select STDERR; $| = 1; | |
25 select STDOUT; $| = 1; | |
26 | |
864
460a9cadbd2f
Tests: do not check for njs presence, just try js.t configuration.
Sergey Kandaurov <pluknet@nginx.com>
parents:
709
diff
changeset
|
27 my $t = Test::Nginx->new()->has(qw/http rewrite/) |
708 | 28 ->write_file_expand('nginx.conf', <<'EOF'); |
29 | |
30 %%TEST_GLOBALS%% | |
31 | |
32 daemon off; | |
33 | |
34 events { | |
35 } | |
36 | |
37 http { | |
38 %%TEST_GLOBALS_HTTP%% | |
39 | |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
40 js_set $test_method test.method; |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
41 js_set $test_version test.version; |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
42 js_set $test_addr test.addr; |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
43 js_set $test_uri test.uri; |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
44 js_set $test_var test.variable; |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
45 js_set $test_type test.type; |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
46 js_set $test_global test.global_obj; |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
47 js_set $test_log test.log; |
1787
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
48 js_set $test_internal test.sub_internal; |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
49 js_set $test_except test.except; |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
50 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
51 js_import test.js; |
708 | 52 |
53 server { | |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
54 listen 127.0.0.1:8080; |
708 | 55 server_name localhost; |
56 | |
1333
746d9ffdbd26
Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1331
diff
changeset
|
57 location /njs { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
58 js_content test.njs; |
1333
746d9ffdbd26
Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1331
diff
changeset
|
59 } |
746d9ffdbd26
Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1331
diff
changeset
|
60 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
61 location /method { |
708 | 62 return 200 $test_method; |
63 } | |
64 | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
65 location /version { |
708 | 66 return 200 $test_version; |
67 } | |
68 | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
69 location /addr { |
708 | 70 return 200 $test_addr; |
71 } | |
72 | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
73 location /uri { |
708 | 74 return 200 $test_uri; |
75 } | |
76 | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
77 location /var { |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
78 return 200 $test_var; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
79 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
80 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
81 location /global { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
82 return 200 $test_global; |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
83 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
84 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
85 location /body { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
86 js_content test.request_body; |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
87 } |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
88 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
89 location /in_file { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
90 client_body_in_file_only on; |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
91 js_content test.request_body; |
1331
f48d2792730e
Tests: added njs empty js_content handler test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1315
diff
changeset
|
92 } |
f48d2792730e
Tests: added njs empty js_content handler test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1315
diff
changeset
|
93 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
94 location /status { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
95 js_content test.status; |
708 | 96 } |
97 | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
98 location /request_body { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
99 js_content test.request_body; |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
100 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
101 |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
102 location /request_body_cache { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
103 js_content test.request_body_cache; |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
104 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
105 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
106 location /send { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
107 js_content test.send; |
708 | 108 } |
109 | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
110 location /return_method { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
111 js_content test.return_method; |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
112 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
113 |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
114 location /type { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
115 js_content test.type; |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
116 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
117 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
118 location /log { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
119 return 200 $test_log; |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
120 } |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
121 |
1787
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
122 location /internal { |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
123 js_content test.internal; |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
124 } |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
125 |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
126 location /sub_internal { |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
127 internal; |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
128 return 200 $test_internal; |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
129 } |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
130 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
131 location /except { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
132 return 200 $test_except; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
133 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
134 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
135 location /content_except { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
136 js_content test.content_except; |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
137 } |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
138 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
139 location /content_empty { |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
140 js_content test.content_empty; |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
141 } |
708 | 142 } |
143 } | |
144 | |
145 EOF | |
146 | |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
147 $t->write_file('test.js', <<EOF); |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
148 var global = ['n', 'j', 's'].join(""); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
149 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
150 function test_njs(r) { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
151 r.return(200, njs.version); |
1333
746d9ffdbd26
Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1331
diff
changeset
|
152 } |
746d9ffdbd26
Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1331
diff
changeset
|
153 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
154 function method(r) { |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
155 return 'method=' + r.method; |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
156 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
157 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
158 function version(r) { |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
159 return 'version=' + r.httpVersion; |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
160 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
161 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
162 function addr(r) { |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
163 return 'addr=' + r.remoteAddress; |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
164 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
165 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
166 function uri(r) { |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
167 return 'uri=' + r.uri; |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
168 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
169 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
170 function variable(r) { |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
171 return 'variable=' + r.variables.remote_addr; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
172 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
173 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
174 function global_obj(r) { |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
175 return 'global=' + global; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
176 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
177 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
178 function status(r) { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
179 r.status = 204; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
180 r.sendHeader(); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
181 r.finish(); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
182 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
183 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
184 function request_body(r) { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
185 try { |
1781
386748f328b1
Tests: updated js properties deprecated since 0.5.0.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1778
diff
changeset
|
186 var body = r.requestText; |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
187 r.return(200, body); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
188 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
189 } catch (e) { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
190 r.return(500, e.message); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
191 } |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
192 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
193 |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
194 function request_body_cache(r) { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
195 function t(v) {return Buffer.isBuffer(v) ? 'buffer' : (typeof v);} |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
196 r.return(200, |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
197 `requestText:\${t(r.requestText)} requestBuffer:\${t(r.requestBuffer)}`); |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
198 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
199 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
200 function send(r) { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
201 var a, s; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
202 r.status = 200; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
203 r.sendHeader(); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
204 for (a in r.args) { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
205 if (a.substr(0, 3) == 'foo') { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
206 s = r.args[a]; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
207 r.send('n=' + a + ', v=' + s.substr(0, 2) + ' '); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
208 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
209 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
210 r.finish(); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
211 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
212 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
213 function return_method(r) { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
214 r.return(Number(r.args.c), r.args.t); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
215 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
216 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
217 function type(r) { |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
218 var p = r.args.path.split('.').reduce((a, v) => a[v], r); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
219 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
220 var typ = Buffer.isBuffer(p) ? 'buffer' : (typeof p); |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
221 r.return(200, `type: \${typ}`); |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
222 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
223 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
224 function log(r) { |
1607
0411d30859ad
Tests: changed log js test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
225 r.log('SEE-LOG'); |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
226 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
227 |
1787
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
228 async function internal(r) { |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
229 let reply = await r.subrequest('/sub_internal'); |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
230 |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
231 r.return(200, `parent: \${r.internal} sub: \${reply.responseText}`); |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
232 } |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
233 |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
234 function sub_internal(r) { |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
235 return r.internal; |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
236 } |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
237 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
238 function except(r) { |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
239 var fs = require('fs'); |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
240 fs.readFileSync(); |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
241 } |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
242 |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
243 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
244 function content_except(r) { |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
245 JSON.parse({}.a.a); |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
246 } |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
247 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
248 function content_empty(r) { |
1331
f48d2792730e
Tests: added njs empty js_content handler test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1315
diff
changeset
|
249 } |
f48d2792730e
Tests: added njs empty js_content handler test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1315
diff
changeset
|
250 |
1778
0979f22e3a5b
Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1777
diff
changeset
|
251 export default {njs:test_njs, method, version, addr, uri, |
1787
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
252 variable, global_obj, status, request_body, internal, |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
253 request_body_cache, send, return_method, sub_internal, |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
254 type, log, except, content_except, content_empty}; |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1627
diff
changeset
|
255 |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
256 EOF |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
257 |
1787
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
258 $t->try_run('no njs available')->plan(27); |
708 | 259 |
260 ############################################################################### | |
261 | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
262 like(http_get('/method'), qr/method=GET/, 'r.method'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
263 like(http_get('/version'), qr/version=1.0/, 'r.httpVersion'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
264 like(http_get('/addr'), qr/addr=127.0.0.1/, 'r.remoteAddress'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
265 like(http_get('/uri'), qr/uri=\/uri/, 'r.uri'); |
1455
558d3d9a000c
Tests: adapted js.t to njs changes.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1440
diff
changeset
|
266 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
267 like(http_get('/status'), qr/204 No Content/, 'r.status'); |
1438
98facc98bb2e
Tests: adapted js.t to set header changes in njs.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1435
diff
changeset
|
268 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
269 like(http_post('/body'), qr/REQ-BODY/, 'request body'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
270 like(http_post('/in_file'), qr/request body is in a file/, |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
271 'request body in file'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
272 like(http_post_big('/body'), qr/200.*^(1234567890){1024}$/ms, |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
273 'request body big'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
274 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
275 like(http_get('/send?foo=12345&n=11&foo-2=bar&ndd=&foo-3=z'), |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
276 qr/n=foo, v=12 n=foo-2, v=ba n=foo-3, v=z/, 'r.send'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
277 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
278 like(http_get('/return_method?c=200'), qr/200 OK.*\x0d\x0a?\x0d\x0a?$/s, |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
279 'return code'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
280 like(http_get('/return_method?c=200&t=SEE-THIS'), qr/200 OK.*^SEE-THIS$/ms, |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
281 'return text'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
282 like(http_get('/return_method?c=301&t=path'), qr/ 301 .*Location: path/s, |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
283 'return redirect'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
284 like(http_get('/return_method?c=404'), qr/404 Not.*html/s, 'return error page'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
285 like(http_get('/return_method?c=inv'), qr/ 500 /, 'return invalid'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
286 |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
287 like(http_get('/type?path=variables.host'), qr/200 OK.*type: string$/s, |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
288 'variables type'); |
1626
a35445ae8de7
Tests: adapted js buffer tests to renaming vars to rawVariables.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1625
diff
changeset
|
289 like(http_get('/type?path=rawVariables.host'), qr/200 OK.*type: buffer$/s, |
a35445ae8de7
Tests: adapted js buffer tests to renaming vars to rawVariables.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1625
diff
changeset
|
290 'rawVariables type'); |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
291 |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
292 like(http_post('/type?path=requestText'), qr/200 OK.*type: string$/s, |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
293 'requestText type'); |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
294 like(http_post('/type?path=requestBuffer'), qr/200 OK.*type: buffer$/s, |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
295 'requestBuffer type'); |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
296 like(http_post('/request_body_cache'), |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
297 qr/requestText:string requestBuffer:buffer$/s, 'request body cache'); |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
298 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
299 like(http_get('/var'), qr/variable=127.0.0.1/, 'r.variables'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
300 like(http_get('/global'), qr/global=njs/, 'global code'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
301 like(http_get('/log'), qr/200 OK/, 'r.log'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
302 |
1787
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
303 TODO: { |
1811
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
304 local $TODO = 'not yet' unless has_version('0.7.7'); |
1787
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
305 |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
306 like(http_get('/internal'), qr/parent: false sub: true/, 'r.internal'); |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
307 |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
308 } |
e55aa7021ea5
Tests: added js r.internal test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1781
diff
changeset
|
309 |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
310 http_get('/except'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
311 http_get('/content_except'); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
312 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
313 like(http_get('/content_empty'), qr/500 Internal Server Error/, |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
314 'empty handler'); |
1333
746d9ffdbd26
Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1331
diff
changeset
|
315 |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
316 $t->stop(); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
317 |
1607
0411d30859ad
Tests: changed log js test.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
318 ok(index($t->read_file('error.log'), 'SEE-LOG') > 0, 'log js'); |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
319 ok(index($t->read_file('error.log'), 'at fs.readFileSync') > 0, |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
320 'js_set backtrace'); |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
321 ok(index($t->read_file('error.log'), 'at JSON.parse') > 0, |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
322 'js_content backtrace'); |
708 | 323 |
324 ############################################################################### | |
325 | |
1811
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
326 sub has_version { |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
327 my $need = shift; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
328 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
329 http_get('/njs') =~ /^([.0-9]+)$/m; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
330 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
331 my @v = split(/\./, $1); |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
332 my ($n, $v); |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
333 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
334 for $n (split(/\./, $need)) { |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
335 $v = shift @v || 0; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
336 return 0 if $n > $v; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
337 return 1 if $v > $n; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
338 } |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
339 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
340 return 1; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
341 } |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
342 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
343 ############################################################################### |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1810
diff
changeset
|
344 |
708 | 345 sub http_get_hdr { |
346 my ($url, %extra) = @_; | |
347 return http(<<EOF, %extra); | |
348 GET $url HTTP/1.0 | |
349 FoO: 12345 | |
350 | |
351 EOF | |
352 } | |
353 | |
354 sub http_get_ihdr { | |
355 my ($url, %extra) = @_; | |
356 return http(<<EOF, %extra); | |
357 GET $url HTTP/1.0 | |
358 foo: 12345 | |
359 Host: localhost | |
360 foo2: bar | |
361 X-xxx: more | |
362 foo-3: z | |
363 | |
364 EOF | |
365 } | |
366 | |
1435
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
367 sub http_post { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
368 my ($url, %extra) = @_; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
369 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
370 my $p = "POST $url HTTP/1.0" . CRLF . |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
371 "Host: localhost" . CRLF . |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
372 "Content-Length: 8" . CRLF . |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
373 CRLF . |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
374 "REQ-BODY"; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
375 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
376 return http($p, %extra); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
377 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
378 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
379 sub http_post_big { |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
380 my ($url, %extra) = @_; |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
381 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
382 my $p = "POST $url HTTP/1.0" . CRLF . |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
383 "Host: localhost" . CRLF . |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
384 "Content-Length: 10240" . CRLF . |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
385 CRLF . |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
386 ("1234567890" x 1024); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
387 |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
388 return http($p, %extra); |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
389 } |
cace66c3ce56
Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
390 |
708 | 391 ############################################################################### |