annotate js.t @ 1701:408fe0dd3fed

Tests: fixed mail_imap_ssl.t too long shutdown. Prior to literals support in IMAP test backend (e7f0b4ca0a1a), early backend response was treated as invalid, with subsequent proxy connection close. Now that the connection continues successfully, this requires connection close before nginx shutdown. Otherwise, it would wait for proxy_timeout.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 17 Jun 2021 19:52:36 +0300
parents 456bf219d768
children 18ac4d9e5a2a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
2
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
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
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
6
1375
f168fc46c7a4 Tests: renamed JavaScript to njs.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1336
diff changeset
7 # Tests for http njs module.
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
8
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
9 ###############################################################################
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
10
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
11 use warnings;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
12 use strict;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
13
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
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
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
16
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
18
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
19 use lib 'lib';
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
20 use Test::Nginx;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
21
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
22 ###############################################################################
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
23
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
24 select STDERR; $| = 1;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
25 select STDOUT; $| = 1;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
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
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
28 ->write_file_expand('nginx.conf', <<'EOF');
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
29
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
30 %%TEST_GLOBALS%%
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
31
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
32 daemon off;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
33
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
34 events {
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
35 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
36
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
37 http {
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
38 %%TEST_GLOBALS_HTTP%%
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
39
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
40 js_set $test_method test_method;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
41 js_set $test_version test_version;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
42 js_set $test_addr test_addr;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
43 js_set $test_uri test_uri;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
44 js_set $test_arg test_arg;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
45 js_set $test_iarg test_iarg;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
46 js_set $test_var test_var;
1625
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
47 js_set $test_type test_type;
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
48 js_set $test_global test_global;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
49 js_set $test_log test_log;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
50 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
51
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
52 js_include test.js;
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
53
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
54 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
55 listen 127.0.0.1:8080;
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
56 server_name localhost;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
57
1333
746d9ffdbd26 Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1331
diff changeset
58 location /njs {
746d9ffdbd26 Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1331
diff changeset
59 js_content test_njs;
746d9ffdbd26 Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1331
diff changeset
60 }
746d9ffdbd26 Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1331
diff changeset
61
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
62 location /method {
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
63 return 200 $test_method;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
64 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
65
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
66 location /version {
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
67 return 200 $test_version;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
68 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
69
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
70 location /addr {
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
71 return 200 $test_addr;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
72 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
73
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
74 location /uri {
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
75 return 200 $test_uri;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
76 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
77
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
78 location /arg {
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
79 return 200 $test_arg;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
80 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
81
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
82 location /iarg {
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
83 return 200 $test_iarg;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
84 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
85
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
86 location /var {
1001
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
87 return 200 $test_var;
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
88 }
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
89
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
90 location /global {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
91 return 200 $test_global;
1001
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
92 }
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
93
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
94 location /body {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
95 js_content request_body;
1247
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
96 }
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
97
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
98 location /in_file {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
99 client_body_in_file_only on;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
100 js_content request_body;
1331
f48d2792730e Tests: added njs empty js_content handler test.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1315
diff changeset
101 }
f48d2792730e Tests: added njs empty js_content handler test.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1315
diff changeset
102
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
103 location /status {
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 status;
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
105 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
106
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
107 location /request_body {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
108 js_content request_body;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
109 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
110
1625
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
111 location /request_body_cache {
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
112 js_content request_body_cache;
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
113 }
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
114
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
115 location /send {
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 send;
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
117 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
118
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
119 location /return_method {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
120 js_content return_method;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
121 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
122
1525
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
123 location /arg_keys {
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
124 js_content arg_keys;
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
125 }
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
126
1625
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
127 location /type {
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
128 js_content test_type;
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
129 }
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
130
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
131 location /log {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
132 return 200 $test_log;
1001
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
133 }
1247
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
134
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
135 location /except {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
136 return 200 $test_except;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
137 }
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_except {
1247
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
140 js_content content_except;
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
141 }
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
142
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
143 location /content_empty {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
144 js_content content_empty;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
145 }
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
146 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
147 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
148
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
149 EOF
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
150
993
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
151 $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
152 var global = ['n', 'j', 's'].join("");
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
153
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
154 function test_njs(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
155 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
156 }
746d9ffdbd26 Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1331
diff changeset
157
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
158 function test_method(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
159 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
160 }
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
161
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
162 function test_version(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
163 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
164 }
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
165
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
166 function test_addr(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
167 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
168 }
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
169
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
170 function test_uri(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
171 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
172 }
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
173
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
174 function test_arg(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
175 return 'arg=' + r.args.foo;
993
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
176 }
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
177
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
178 function test_iarg(r) {
1106
4b0b10e39a08 Tests: fixed implicitly declared njs variables after 4337ed48d6d6.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1001
diff changeset
179 var s = '', a;
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
180 for (a in r.args) {
993
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
181 if (a.substr(0, 3) == 'foo') {
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
182 s += r.args[a];
993
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
183 }
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
184 }
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
185 return s;
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
186 }
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
187
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
188 function test_var(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
189 return 'variable=' + r.variables.remote_addr;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
190 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
191
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
192 function test_global(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
193 return 'global=' + global;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
194 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
195
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
196 function status(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
197 r.status = 204;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
198 r.sendHeader();
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
199 r.finish();
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
200 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
201
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
202 function request_body(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
203 try {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
204 var body = r.requestBody;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
205 r.return(200, body);
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
206
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
207 } catch (e) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
208 r.return(500, e.message);
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
209 }
1001
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
210 }
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
211
1625
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
212 function request_body_cache(r) {
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
213 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
214 r.return(200,
1627
456bf219d768 Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1626
diff changeset
215 `requestText:\${t(r.requestText)} requestBuffer:\${t(r.requestBuffer)}`);
1625
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
216 }
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
217
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
218 function send(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
219 var a, s;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
220 r.status = 200;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
221 r.sendHeader();
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
222 for (a in r.args) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
223 if (a.substr(0, 3) == 'foo') {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
224 s = r.args[a];
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
225 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
226 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
227 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
228 r.finish();
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
229 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
230
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
231 function return_method(r) {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
232 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
233 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
234
1525
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
235 function arg_keys(r) {
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
236 r.return(200, Object.keys(r.args).sort());
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
237 }
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
238
1625
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
239 function test_type(r) {
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
240 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
241
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
242 var type = Buffer.isBuffer(p) ? 'buffer' : (typeof p);
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
243 r.return(200, `type: \${type}`);
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
244 }
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
245
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
246 function test_log(r) {
1607
0411d30859ad Tests: changed log js test.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
247 r.log('SEE-LOG');
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
248 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
249
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
250 function test_except(r) {
1247
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
251 var fs = require('fs');
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
252 fs.readFileSync();
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
253 }
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
254
993
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
255
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
256 function content_except(r) {
1247
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
257 JSON.parse({}.a.a);
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
258 }
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
259
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
260 function content_empty(r) {
1331
f48d2792730e Tests: added njs empty js_content handler test.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1315
diff changeset
261 }
f48d2792730e Tests: added njs empty js_content handler test.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1315
diff changeset
262
993
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
263 EOF
3ee5ca1ec728 Tests: updated js.t to the new http js module syntax.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
264
1627
456bf219d768 Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1626
diff changeset
265 $t->try_run('no njs available')->plan(33);
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
266
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
267 ###############################################################################
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
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_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
270 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
271 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
272 like(http_get('/uri'), qr/uri=\/uri/, 'r.uri');
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
273 like(http_get('/arg?foO=12345'), qr/arg=12345/, 'r.args');
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
274 like(http_get('/iarg?foo=12345&foo2=bar&nn=22&foo-3=z'), qr/12345barz/,
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
275 'r.args iteration');
1455
558d3d9a000c Tests: adapted js.t to njs changes.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1440
diff changeset
276
558d3d9a000c Tests: adapted js.t to njs changes.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1440
diff changeset
277 like(http_get('/iarg?foo=123&foo2=&foo3&foo4=456'), qr/123undefined456/,
558d3d9a000c Tests: adapted js.t to njs changes.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1440
diff changeset
278 'r.args iteration 2');
558d3d9a000c Tests: adapted js.t to njs changes.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1440
diff changeset
279 like(http_get('/iarg?foo=123&foo2=&foo3'), qr/123/, 'r.args iteration 3');
558d3d9a000c Tests: adapted js.t to njs changes.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1440
diff changeset
280 like(http_get('/iarg?foo=123&foo2='), qr/123/, 'r.args iteration 4');
558d3d9a000c Tests: adapted js.t to njs changes.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1440
diff changeset
281
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
282 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
283
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
284 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
285 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
286 'request body in file');
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
287 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
288 'request body big');
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
289
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
290 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
291 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
292
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
293 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
294 'return code');
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
295 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
296 'return text');
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
297 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
298 'return redirect');
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
299 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
300 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
301
1525
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
302 like(http_get('/arg_keys?b=1&c=2&a=5'), qr/a,b,c/m, 'r.args sorted keys');
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
303
1625
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
304 TODO: {
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
305 local $TODO = 'not yet'
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
306 unless http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.5.0';
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
307
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
308 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
309 'variables type');
1626
a35445ae8de7 Tests: adapted js buffer tests to renaming vars to rawVariables.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1625
diff changeset
310 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
311 'rawVariables type');
1625
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
312
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
313 like(http_post('/type?path=requestBody'), qr/200 OK.*type: string$/s,
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
314 'requestBody type');
1627
456bf219d768 Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1626
diff changeset
315 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
316 'requestText type');
456bf219d768 Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1626
diff changeset
317 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
318 'requestBuffer type');
456bf219d768 Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1626
diff changeset
319 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
320 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
321
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
322 }
a140cab489e8 Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
323
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
324 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
325 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
326 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
327
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
328 http_get('/except');
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
329 http_get('/content_except');
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
330
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
331 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
332 'empty handler');
1333
746d9ffdbd26 Tests: fixed empty js_content test committed in f48d2792730e.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1331
diff changeset
333
1001
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
334 $t->stop();
4a0e1d7cc20b Tests: more JavaScript tests for http js module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 994
diff changeset
335
1607
0411d30859ad Tests: changed log js test.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
336 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
337 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
338 'js_set backtrace');
1247
edf5a3c9e36a Tests: added tests for js backtraces.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1106
diff changeset
339 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
340 'js_content backtrace');
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
341
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
342 ###############################################################################
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
343
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
344 sub http_get_hdr {
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
345 my ($url, %extra) = @_;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
346 return http(<<EOF, %extra);
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
347 GET $url HTTP/1.0
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
348 FoO: 12345
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
349
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
350 EOF
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
351 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
352
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
353 sub http_get_ihdr {
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
354 my ($url, %extra) = @_;
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
355 return http(<<EOF, %extra);
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
356 GET $url HTTP/1.0
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
357 foo: 12345
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
358 Host: localhost
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
359 foo2: bar
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
360 X-xxx: more
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
361 foo-3: z
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
362
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
363 EOF
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
364 }
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
365
1435
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
366 sub http_post {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
367 my ($url, %extra) = @_;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
368
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
369 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
370 "Host: localhost" . CRLF .
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
371 "Content-Length: 8" . CRLF .
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
372 CRLF .
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
373 "REQ-BODY";
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
374
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
375 return http($p, %extra);
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
376 }
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 sub http_post_big {
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
379 my ($url, %extra) = @_;
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
380
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
381 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
382 "Host: localhost" . CRLF .
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
383 "Content-Length: 10240" . CRLF .
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
384 CRLF .
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
385 ("1234567890" x 1024);
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
386
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
387 return http($p, %extra);
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
388 }
cace66c3ce56 Tests: removed js tests for deprecated njs API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
389
708
71a2d58c0a7f Tests: JavaScript tests.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
390 ###############################################################################