Mercurial > hg > nginx-tests
annotate js_buffer.t @ 1828:835630547d35
Tests: dav tests with UTF-8.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 21 Mar 2023 14:20:54 +0400 |
parents | f89770df737a |
children |
rev | line source |
---|---|
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
2 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
3 # (C) Dmitry Volyntsev |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
5 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
6 # Tests for http njs module, buffer properties. |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
7 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
9 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
11 use strict; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
12 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
14 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
15 use Socket qw/ CRLF /; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
16 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
17 BEGIN { use FindBin; chdir($FindBin::Bin); } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
18 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
19 use lib 'lib'; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
20 use Test::Nginx; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
21 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
22 ############################################################################### |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
23 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
24 select STDERR; $| = 1; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
25 select STDOUT; $| = 1; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
26 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
27 eval { require JSON::PP; }; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
28 plan(skip_all => "JSON::PP not installed") if $@; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
29 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
30 my $t = Test::Nginx->new()->has(qw/http rewrite proxy/) |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
31 ->write_file_expand('nginx.conf', <<'EOF'); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
32 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
33 %%TEST_GLOBALS%% |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
34 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
35 daemon off; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
36 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
37 events { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
38 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
39 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
40 http { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
41 %%TEST_GLOBALS_HTTP%% |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
42 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
43 js_import test.js; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
44 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
45 server { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
46 listen 127.0.0.1:8080; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
47 server_name localhost; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
48 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
49 location /njs { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
50 js_content test.njs; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
51 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
52 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
53 location /return { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
54 js_content test.return; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
55 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
56 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
57 location /req_body { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
58 js_content test.req_body; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
59 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
60 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
61 location /res_body { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
62 js_content test.res_body; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
63 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
64 |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
65 location /res_text { |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
66 js_content test.res_text; |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
67 } |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
68 |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
69 location /binary_var { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
70 js_content test.binary_var; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
71 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
72 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
73 location /p/ { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
74 proxy_pass http://127.0.0.1:8081/; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
75 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
76 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
77 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
78 server { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
79 listen 127.0.0.1:8081; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
80 server_name localhost; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
81 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
82 location /sub1 { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
83 return 200 '{"a": {"b": 1}}'; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
84 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
85 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
86 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
87 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
88 EOF |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
89 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
90 $t->write_file('test.js', <<EOF); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
91 function test_njs(r) { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
92 r.return(200, njs.version); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
93 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
94 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
95 function test_return(r) { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
96 var body = Buffer.from("body: "); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
97 body = Buffer.concat([body, Buffer.from(r.args.text)]); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
98 r.return(200, body); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
99 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
100 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
101 function req_body(r) { |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
102 var body = r.requestBuffer; |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
103 var view = new DataView(body.buffer); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
104 view.setInt8(2, 'c'.charCodeAt(0)); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
105 r.return(200, JSON.parse(body).c.b); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
106 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
107 |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
108 function type(v) {return Buffer.isBuffer(v) ? 'buffer' : (typeof v);} |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
109 |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
110 function res_body(r) { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
111 r.subrequest('/p/sub1') |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
112 .then(reply => { |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
113 var body = reply.responseBuffer; |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
114 var view = new DataView(body.buffer); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
115 view.setInt8(2, 'c'.charCodeAt(0)); |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
116 body = JSON.parse(body); |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
117 body.type = type(reply.responseBuffer); |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
118 r.return(200, JSON.stringify(body)); |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
119 }) |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
120 } |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
121 |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
122 function res_text(r) { |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
123 r.subrequest('/p/sub1') |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
124 .then(reply => { |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
125 var body = JSON.parse(reply.responseText); |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
126 body.type = type(reply.responseText); |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
127 r.return(200, JSON.stringify(body)); |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
128 }) |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
129 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
130 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
131 function binary_var(r) { |
1626
a35445ae8de7
Tests: adapted js buffer tests to renaming vars to rawVariables.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1625
diff
changeset
|
132 var test = r.rawVariables.binary_remote_addr |
a35445ae8de7
Tests: adapted js buffer tests to renaming vars to rawVariables.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1625
diff
changeset
|
133 .equals(Buffer.from([127,0,0,1])); |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
134 r.return(200, test); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
135 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
136 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
137 export default {njs: test_njs, return: test_return, req_body, res_body, |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
138 res_text, binary_var}; |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
139 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
140 EOF |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
141 |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
142 $t->try_run('no njs buffer')->plan(5); |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
143 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
144 ############################################################################### |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
145 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
146 like(http_get('/return?text=FOO'), qr/200 OK.*body: FOO$/s, |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
147 'return buffer'); |
1627
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
148 like(http_post('/req_body'), qr/200 OK.*BAR$/s, 'request buffer'); |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
149 is(get_json('/res_body'), '{"c":{"b":1},"type":"buffer"}', 'response buffer'); |
456bf219d768
Tests: adapted js buffer tests to renaming body properties.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1626
diff
changeset
|
150 is(get_json('/res_text'), '{"a":{"b":1},"type":"string"}', 'response text'); |
1625
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
151 like(http_get('/binary_var'), qr/200 OK.*true$/s, |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
152 'binary var'); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
153 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
154 ############################################################################### |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
155 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
156 sub recode { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
157 my $json; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
158 eval { $json = JSON::PP::decode_json(shift) }; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
159 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
160 if ($@) { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
161 return "<failed to parse JSON>"; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
162 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
163 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
164 JSON::PP->new()->canonical()->encode($json); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
165 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
166 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
167 sub get_json { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
168 http_get(shift) =~ /\x0d\x0a?\x0d\x0a?(.*)/ms; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
169 recode($1); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
170 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
171 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
172 sub http_post { |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
173 my ($url, %extra) = @_; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
174 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
175 my $p = "POST $url HTTP/1.0" . CRLF . |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
176 "Host: localhost" . CRLF . |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
177 "Content-Length: 17" . CRLF . |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
178 CRLF . |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
179 "{\"a\":{\"b\":\"BAR\"}}"; |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
180 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
181 return http($p, %extra); |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
182 } |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
183 |
a140cab489e8
Tests: added js buffer tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
184 ############################################################################### |