annotate js_promise.t @ 1542:451e787aad76

Tests: reworked libgd version detection. The "libgd-config" binary is deprecated in recent versions and may not exist or have unexpected output. More, it may not present within older versions, as well, if installed separately, which previously broke test assumptions. The fix is change the fallback to skip tests. In addition, recent Perl GD module (2.57) started to export libgd version, which is now also consulted.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 13 Jan 2020 18:15:35 +0300
parents 5e2b8621aa5d
children bc0990ea2e5b
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 }
1540
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
58
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
59 location /njs {
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
60 js_content test_njs;
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
61 }
1537
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 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
64
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
65 EOF
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
66
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
67 $t->write_file('test.js', <<EOF);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
68 var global_token = '';
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
69
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
70 function promise(r) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
71 promisified_subrequest(r, '/sub_token', 'code=200&token=a')
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
72 .then(reply => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
73 var data = JSON.parse(reply.responseBody);
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 if (data['token'] !== "a") {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
76 throw new Error('token is not "a"');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
77 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
78
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
79 return data['token'];
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
80 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
81 .then(token => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
82 promisified_subrequest(r, '/sub_token', 'code=200&token=b')
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
83 .then(reply => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
84 var data = JSON.parse(reply.responseBody);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
85
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
86 r.return(200, '{"token": "' + data['token'] + '"}');
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 throw new Error("failed promise() test");
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 .catch(() => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
93 r.return(500);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
94 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
95 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
96
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
97 function promise_throw(r) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
98 promisified_subrequest(r, '/sub_token', 'code=200&token=x')
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
99 .then(reply => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
100 var data = JSON.parse(reply.responseBody);
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 if (data['token'] !== "a") {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
103 throw data['token'];
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
104 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
105
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
106 return data['token'];
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
107 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
108 .then(() => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
109 r.return(500);
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 .catch(token => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
112 r.return(200, '{"token": "' + token + '"}');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
113 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
114 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
115
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
116 function timeout(r) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
117 promisified_subrequest(r, '/sub_token', 'code=200&token=R')
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
118 .then(reply => JSON.parse(reply.responseBody))
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, 50, r, '/sub_token', 'code=200&token=T');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
121 return data;
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 .then(data => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
124 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
125 + data['token']);
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 .catch(() => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
128 r.return(500);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
129 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
130 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
131
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
132 function timeout_cb(r, url, args) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
133 promisified_subrequest(r, url, args)
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
134 .then(reply => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
135 if (global_token == '') {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
136 var data = JSON.parse(reply.responseBody);
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 global_token = data['token'];
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
139
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
140 r.return(200, '{"token": "' + data['token'] + '"}');
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 .catch(() => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
144 r.return(500);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
145 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
146 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
147
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
148 function promisified_subrequest(r, uri, args) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
149 return new Promise((resolve, reject) => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
150 r.subrequest(uri, args, (reply) => {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
151 if (reply.status < 400) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
152 resolve(reply);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
153 } else {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
154 reject(reply);
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 });
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
157 })
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
158 }
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 function sub_token(r) {
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
161 var code = r.variables.arg_code;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
162 var token = r.variables.arg_token;
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
163
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
164 r.return(parseInt(code), '{"token": "'+ token +'"}');
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
165 }
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
166
1540
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
167 function test_njs(r) {
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
168 r.return(200, njs.version);
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
169 }
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
170
1537
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
171 EOF
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 $t->try_run('no njs available')->plan(3);
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
174
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
175 ###############################################################################
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
176
1540
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
177 TODO: {
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
178 local $TODO = 'not yet'
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
179 unless http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.3.8';
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
180
1537
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
181 like(http_get('/promise'), qr/{"token": "b"}/, "Promise");
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
182 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
183 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
184
1540
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
185 }
5e2b8621aa5d Tests: TODO js_promise.t on njs < 0.3.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1537
diff changeset
186
1537
beb549bce15f Tests: added njs Promise tests.
Alexander Borisov <alexander.borisov@nginx.com>
parents:
diff changeset
187 ###############################################################################