Mercurial > hg > nginx-tests
annotate js.t @ 1260:eadd24ccfda1
Tests: postponed startup in certain ssl certificate tests on win32.
At least, some win32 hosts exhibit a round-off error or some such in the
notBefore field of the certificate generated before starting nginx, such
that it can be set to the value one second ahead of the current time.
This manifests in spurious test failures due to certificate verify error
with a failure reason "certificate is not yet valid".
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 12 Dec 2017 12:53:53 +0300 |
parents | edf5a3c9e36a |
children | 3882f8f3b2bc |
rev | line source |
---|---|
708 | 1 #!/usr/bin/perl |
2 | |
3 # (C) Roman Arutyunyan | |
4 | |
5 # Tests for http JavaScript module. | |
6 | |
7 ############################################################################### | |
8 | |
9 use warnings; | |
10 use strict; | |
11 | |
12 use Test::More; | |
13 | |
14 BEGIN { use FindBin; chdir($FindBin::Bin); } | |
15 | |
16 use lib 'lib'; | |
17 use Test::Nginx; | |
18 | |
19 ############################################################################### | |
20 | |
21 select STDERR; $| = 1; | |
22 select STDOUT; $| = 1; | |
23 | |
864
460a9cadbd2f
Tests: do not check for njs presence, just try js.t configuration.
Sergey Kandaurov <pluknet@nginx.com>
parents:
709
diff
changeset
|
24 my $t = Test::Nginx->new()->has(qw/http rewrite/) |
708 | 25 ->write_file_expand('nginx.conf', <<'EOF'); |
26 | |
27 %%TEST_GLOBALS%% | |
28 | |
29 daemon off; | |
30 | |
31 events { | |
32 } | |
33 | |
34 http { | |
35 %%TEST_GLOBALS_HTTP%% | |
36 | |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
37 js_set $test_method test_method; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
38 js_set $test_version test_version; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
39 js_set $test_addr test_addr; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
40 js_set $test_uri test_uri; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
41 js_set $test_hdr test_hdr; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
42 js_set $test_ihdr test_ihdr; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
43 js_set $test_arg test_arg; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
44 js_set $test_iarg test_iarg; |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
45 js_set $test_var test_var; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
46 js_set $test_log test_log; |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
47 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
|
48 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
49 js_include test.js; |
708 | 50 |
51 server { | |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
52 listen 127.0.0.1:8080; |
708 | 53 server_name localhost; |
54 | |
55 location /req_method { | |
56 return 200 $test_method; | |
57 } | |
58 | |
59 location /req_version { | |
60 return 200 $test_version; | |
61 } | |
62 | |
63 location /req_addr { | |
64 return 200 $test_addr; | |
65 } | |
66 | |
67 location /req_uri { | |
68 return 200 $test_uri; | |
69 } | |
70 | |
71 location /req_hdr { | |
72 return 200 $test_hdr; | |
73 } | |
74 | |
75 location /req_ihdr { | |
76 return 200 $test_ihdr; | |
77 } | |
78 | |
79 location /req_arg { | |
80 return 200 $test_arg; | |
81 } | |
82 | |
83 location /req_iarg { | |
84 return 200 $test_iarg; | |
85 } | |
86 | |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
87 location /req_var { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
88 return 200 $test_var; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
89 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
90 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
91 location /req_log { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
92 return 200 $test_log; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
93 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
94 |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
95 location /req_except { |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
96 return 200 $test_except; |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
97 } |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
98 |
708 | 99 location /res_status { |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
100 js_content status; |
708 | 101 } |
102 | |
103 location /res_ctype { | |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
104 js_content ctype; |
708 | 105 } |
106 | |
107 location /res_clen { | |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
108 js_content clen; |
708 | 109 } |
110 | |
111 location /res_send { | |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
112 js_content send; |
708 | 113 } |
114 | |
115 location /res_hdr { | |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
116 js_content hdr; |
708 | 117 } |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
118 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
119 location /res_ihdr { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
120 js_content ihdr; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
121 } |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
122 |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
123 location /res_except { |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
124 js_content content_except; |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
125 } |
708 | 126 } |
127 } | |
128 | |
129 EOF | |
130 | |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
131 $t->write_file('test.js', <<EOF); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
132 function test_method(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
133 return 'method=' + req.method; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
134 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
135 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
136 function test_version(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
137 return 'version=' + req.httpVersion; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
138 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
139 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
140 function test_addr(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
141 return 'addr=' + req.remoteAddress; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
142 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
143 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
144 function test_uri(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
145 return 'uri=' + req.uri; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
146 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
147 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
148 function test_hdr(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
149 return 'hdr=' + req.headers.foo; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
150 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
151 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
152 function test_ihdr(req, res) { |
1106
4b0b10e39a08
Tests: fixed implicitly declared njs variables after 4337ed48d6d6.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1001
diff
changeset
|
153 var s = '', h; |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
154 for (h in req.headers) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
155 if (h.substr(0, 3) == 'foo') { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
156 s += req.headers[h]; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
157 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
158 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
159 return s; |
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 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
162 function test_arg(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
163 return 'arg=' + req.args.foo; |
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 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
166 function test_iarg(req, res) { |
1106
4b0b10e39a08
Tests: fixed implicitly declared njs variables after 4337ed48d6d6.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1001
diff
changeset
|
167 var s = '', a; |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
168 for (a in req.args) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
169 if (a.substr(0, 3) == 'foo') { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
170 s += req.args[a]; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
171 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
172 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
173 return s; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
174 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
175 |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
176 function test_var(req, res) { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
177 return 'variable=' + req.variables.remote_addr; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
178 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
179 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
180 function test_log(req, res) { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
181 req.log("SEE-THIS"); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
182 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
183 |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
184 function test_except(req, res) { |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
185 var fs = require('fs'); |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
186 fs.readFileSync(); |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
187 } |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
188 |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
189 function status(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
190 res.status = 204; |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
191 if (res.status != 204) |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
192 res.status = 404; |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
193 res.sendHeader(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
194 res.finish(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
195 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
196 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
197 function ctype(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
198 res.status = 200; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
199 res.contentType = 'application/foo'; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
200 res.sendHeader(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
201 res.finish(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
202 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
203 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
204 function clen(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
205 res.status = 200; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
206 res.contentLength = 5; |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
207 if (res.contentLength != 5) |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
208 res.contentLength = 6; |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
209 res.sendHeader(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
210 res.send('foo12'); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
211 res.finish(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
212 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
213 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
214 function send(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
215 var a, s; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
216 res.status = 200; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
217 res.sendHeader(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
218 for (a in req.args) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
219 if (a.substr(0, 3) == 'foo') { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
220 s = req.args[a]; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
221 res.send('n=' + a + ', v=' + s.substr(0, 2) + ' '); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
222 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
223 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
224 res.finish(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
225 } |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
226 |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
227 function hdr(req, res) { |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
228 res.status = 200; |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
229 res.headers['Foo'] = req.args.fOO; |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
230 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
231 if (req.args.bar) { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
232 res.headers['Bar'] = res.headers['Foo']; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
233 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
234 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
235 if (req.args.bar == 'empty') { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
236 res.headers['Bar'] = res.headers['Baz']; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
237 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
238 |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
239 res.sendHeader(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
240 res.finish(); |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
241 } |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
242 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
243 function ihdr(req, res) { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
244 res.status = 200; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
245 res.headers['a'] = req.args.a; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
246 res.headers['b'] = req.args.b; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
247 |
1106
4b0b10e39a08
Tests: fixed implicitly declared njs variables after 4337ed48d6d6.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1001
diff
changeset
|
248 var s = '', h; |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
249 for (h in res.headers) { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
250 s += res.headers[h]; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
251 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
252 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
253 res.sendHeader(); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
254 res.send(s); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
255 res.finish(); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
256 } |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
257 |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
258 function content_except(req, res) { |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
259 JSON.parse({}.a.a); |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
260 } |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
261 |
993
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
262 EOF |
3ee5ca1ec728
Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
263 |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
264 $t->try_run('no njs available')->plan(22); |
708 | 265 |
266 ############################################################################### | |
267 | |
994
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
268 like(http_get('/req_method'), qr/method=GET/, 'req.method'); |
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
269 like(http_get('/req_version'), qr/version=1.0/, 'req.httpVersion'); |
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
270 like(http_get('/req_addr'), qr/addr=127.0.0.1/, 'req.remoteAddress'); |
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
271 like(http_get('/req_uri'), qr/uri=\/req_uri/, 'req.uri'); |
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
272 like(http_get_hdr('/req_hdr'), qr/hdr=12345/, 'req.headers'); |
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
273 like(http_get_ihdr('/req_ihdr'), qr/12345barz/, 'req.headers iteration'); |
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
274 like(http_get('/req_arg?foO=12345'), qr/arg=12345/, 'req.args'); |
708 | 275 like(http_get('/req_iarg?foo=12345&foo2=bar&nn=22&foo-3=z'), qr/12345barz/, |
994
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
276 'req.args iteration'); |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
277 like(http_get('/req_var'), qr/variable=127.0.0.1/, 'req.variables'); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
278 like(http_get('/req_log'), qr/200 OK/, 'req.log'); |
708 | 279 |
994
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
280 like(http_get('/res_status'), qr/204 No Content/, 'res.status'); |
708 | 281 like(http_get('/res_ctype'), qr/Content-Type: application\/foo/, |
994
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
282 'res.contentType'); |
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
283 like(http_get('/res_clen'), qr/Content-Length: 5/, 'res.contentLength'); |
708 | 284 like(http_get('/res_send?foo=12345&n=11&foo-2=bar&ndd=&foo-3=z'), |
994
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
285 qr/n=foo, v=12 n=foo-2, v=ba n=foo-3, v=z/, 'res.send'); |
345a655ef643
Tests: fixed js.t tests description.
Sergey Kandaurov <pluknet@nginx.com>
parents:
993
diff
changeset
|
286 like(http_get('/res_hdr?foo=12345'), qr/Foo: 12345/, 'res.headers'); |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
287 like(http_get('/res_hdr?foo=123&bar=copy'), qr/Bar: 123/, 'res.headers get'); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
288 like(http_get('/res_hdr?bar=empty'), qr/Bar: \x0d/, 'res.headers empty'); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
289 like(http_get('/res_ihdr?a=12&b=34'), qr/^1234$/m, 'res.headers iteration'); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
290 |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
291 http_get('/req_except'); |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
292 http_get('/res_except'); |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
293 |
1001
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
294 TODO: { |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
295 local $TODO = 'zero size buf in writer'; |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
296 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
297 like(http_get('/res_ihdr'), qr/\x0d\x0a?\x0d\x0a?$/m, 'res.send zero'); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
298 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
299 $t->todo_alerts(); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
300 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
301 } |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
302 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
303 $t->stop(); |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
304 |
4a0e1d7cc20b
Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
994
diff
changeset
|
305 ok(index($t->read_file('error.log'), 'SEE-THIS') > 0, 'log js'); |
1247
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
306 ok(index($t->read_file('error.log'), 'at fs.readFileSync') > 0, |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
307 'js_set backtrace'); |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
308 ok(index($t->read_file('error.log'), 'at JSON.parse') > 0, |
edf5a3c9e36a
Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1106
diff
changeset
|
309 'js_content backtrace'); |
708 | 310 |
311 ############################################################################### | |
312 | |
313 sub http_get_hdr { | |
314 my ($url, %extra) = @_; | |
315 return http(<<EOF, %extra); | |
316 GET $url HTTP/1.0 | |
317 FoO: 12345 | |
318 | |
319 EOF | |
320 } | |
321 | |
322 sub http_get_ihdr { | |
323 my ($url, %extra) = @_; | |
324 return http(<<EOF, %extra); | |
325 GET $url HTTP/1.0 | |
326 foo: 12345 | |
327 Host: localhost | |
328 foo2: bar | |
329 X-xxx: more | |
330 foo-3: z | |
331 | |
332 EOF | |
333 } | |
334 | |
335 ############################################################################### |