annotate js_promise.t @ 1619:436d0ffc2ea3

Tests: correctly shutdown ssl for reproducible session reuse tests. Previously, session reuse tests in stream_ssl_certificate.t were prone to testing errors, since the client doesn't write any application data before closing a connection, which is done so to pass tests on win32. In this case, the server may happened to get an unexpected eof meaning that it will abandon that session. This is specific to stream testing pattern, changes to ssl_certificate.t are applied too for consistency. This is also specific to SSL_R_UNEXPECTED_EOF_WHILE_READING, which is implemented in OpenSSL 3.0.0.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 23 Nov 2020 22:46:06 +0000
parents bc0990ea2e5b
children 54f867e69cb5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1537
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
2
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
3 # (C) Nginx, Inc.
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
4
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
5 # Promise tests for http njs module.
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
6
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
7 ###############################################################################
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
8
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
9 use warnings;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
10 use strict;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
11
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
12 use Test::More;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
13
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
15
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
16 use lib 'lib';
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
17 use Test::Nginx;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
18
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
19 ###############################################################################
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
20
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
21 select STDERR; $| = 1;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
22 select STDOUT; $| = 1;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
23
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http/)
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
25 ->write_file_expand('nginx.conf', <<'EOF');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
26
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
27 %%TEST_GLOBALS%%
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
28
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
29 daemon off;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
30
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
31 events {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
32 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
33
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
34 http {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
35 %%TEST_GLOBALS_HTTP%%
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
36
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
37 js_include test.js;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
38
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
39 server {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
40 listen 127.0.0.1:8080;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
41 server_name localhost;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
42
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
43 location /promise {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
44 js_content promise;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
45 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
46
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
47 location /promise_throw {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
48 js_content promise_throw;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
49 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
50
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
51 location /timeout {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
52 js_content timeout;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
53 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
54
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
55 location /sub_token {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
56 js_content sub_token;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
57 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
58 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
59 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
60
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
61 EOF
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
62
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
63 $t->write_file('test.js', <<EOF);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
64 var global_token = '';
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
65
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
66 function promise(r) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
67 promisified_subrequest(r, '/sub_token', 'code=200&token=a')
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
68 .then(reply => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
69 var data = JSON.parse(reply.responseBody);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
70
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
71 if (data['token'] !== "a") {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
72 throw new Error('token is not "a"');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
73 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
74
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
75 return data['token'];
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
76 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
77 .then(token => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
78 promisified_subrequest(r, '/sub_token', 'code=200&token=b')
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
79 .then(reply => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
80 var data = JSON.parse(reply.responseBody);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
81
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
82 r.return(200, '{"token": "' + data['token'] + '"}');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
83 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
84 .catch(() => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
85 throw new Error("failed promise() test");
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
86 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
87 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
88 .catch(() => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
89 r.return(500);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
90 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
91 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
92
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
93 function promise_throw(r) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
94 promisified_subrequest(r, '/sub_token', 'code=200&token=x')
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
95 .then(reply => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
96 var data = JSON.parse(reply.responseBody);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
97
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
98 if (data['token'] !== "a") {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
99 throw data['token'];
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
100 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
101
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
102 return data['token'];
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
103 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
104 .then(() => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
105 r.return(500);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
106 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
107 .catch(token => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
108 r.return(200, '{"token": "' + token + '"}');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
109 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
110 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
111
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
112 function timeout(r) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
113 promisified_subrequest(r, '/sub_token', 'code=200&token=R')
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
114 .then(reply => JSON.parse(reply.responseBody))
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
115 .then(data => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
116 setTimeout(timeout_cb, 50, r, '/sub_token', 'code=200&token=T');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
117 return data;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
118 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
119 .then(data => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
120 setTimeout(timeout_cb, 1, r, '/sub_token', 'code=200&token='
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
121 + data['token']);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
122 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
123 .catch(() => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
124 r.return(500);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
125 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
126 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
127
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
128 function timeout_cb(r, url, args) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
129 promisified_subrequest(r, url, args)
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
130 .then(reply => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
131 if (global_token == '') {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
132 var data = JSON.parse(reply.responseBody);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
133
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
134 global_token = data['token'];
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
135
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
136 r.return(200, '{"token": "' + data['token'] + '"}');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
137 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
138 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
139 .catch(() => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
140 r.return(500);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
141 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
142 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
143
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
144 function promisified_subrequest(r, uri, args) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
145 return new Promise((resolve, reject) => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
146 r.subrequest(uri, args, (reply) => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
147 if (reply.status < 400) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
148 resolve(reply);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
149 } else {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
150 reject(reply);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
151 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
152 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
153 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
154 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
155
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
156 function sub_token(r) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
157 var code = r.variables.arg_code;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
158 var token = r.variables.arg_token;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
159
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
160 r.return(parseInt(code), '{"token": "'+ token +'"}');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
161 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
162
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
163 EOF
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
164
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
165 $t->try_run('no njs available')->plan(3);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
166
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
167 ###############################################################################
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
168
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
169 like(http_get('/promise'), qr/{"token": "b"}/, "Promise");
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
170 like(http_get('/promise_throw'), qr/{"token": "x"}/, "Promise throw and catch");
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
171 like(http_get('/timeout'), qr/{"token": "R"}/, "Promise with timeout");
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
172
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
173 ###############################################################################