annotate js_args.t @ 1842:af47a0b348a5

Tests: LibreSSL certificate negotiation with TLSv1.3. LibreSSL fails to negotiate certificates based on signature algorithms when using TLSv1.3, and fails with "missing rsa certificate" and "unknown pkey type" errors.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 23 Mar 2023 19:50:17 +0300
parents 520fb74cce4c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1778
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
3 # (C) Dmitry Volyntsev
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
6 # Tests for http njs module, arguments tests.
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
16
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17 use lib 'lib';
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20 ###############################################################################
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25 eval { require JSON::PP; };
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26 plan(skip_all => "JSON::PP not installed") if $@;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28 my $t = Test::Nginx->new()->has(qw/http/)
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29 ->write_file_expand('nginx.conf', <<'EOF');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31 %%TEST_GLOBALS%%
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33 daemon off;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35 events {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
36 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
37
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
38 http {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
39 %%TEST_GLOBALS_HTTP%%
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
40
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
41 js_import test.js;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
42
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
43 js_set $test_iter test.iter;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
44
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
45 server {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
46 listen 127.0.0.1:8080;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
47 server_name localhost;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
48
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
49 location /njs {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
50 js_content test.njs;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
52
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
53 location /iter {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
54 return 200 $test_iter;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
55 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
56
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
57 location /keys {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
58 js_content test.keys;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
59 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
60
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
61 location /object {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
62 js_content test.object;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
63 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
64 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
66
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67 EOF
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
68
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
69 $t->write_file('test.js', <<EOF);
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
70 function test_njs(r) {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71 r.return(200, njs.version);
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
72 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
73
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
74 function iter(r) {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
75 var s = '', a;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
76 for (a in r.args) {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
77 if (a.substr(0, 3) == 'foo') {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
78 s += r.args[a];
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
80 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
81
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
82 return s;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
83 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
84
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
85 function keys(r) {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
86 r.return(200, Object.keys(r.args).sort());
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
88
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
89 function object(r) {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
90 r.return(200, JSON.stringify(r.args));
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
92
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
93 export default {njs: test_njs, iter, keys, object};
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
94
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
95 EOF
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
96
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
97 $t->try_run('no njs')->plan(15);
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
98
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
99 ###############################################################################
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
100
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
101 sub recode {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
102 my $json;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
103 eval { $json = JSON::PP::decode_json(shift) };
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
104
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
105 if ($@) {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
106 return "<failed to parse JSON>";
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
107 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
108
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
109 JSON::PP->new()->canonical()->encode($json);
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
110 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
111
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
112 sub get_json {
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
113 http_get(shift) =~ /\x0d\x0a?\x0d\x0a?(.*)/ms;
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
114 recode($1);
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
115 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
116
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
117 ###############################################################################
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
118
1811
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
119 local $TODO = 'not yet' unless has_version('0.7.6');
1778
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
120
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
121 like(http_get('/iter?foo=12345&foo2=bar&nn=22&foo-3=z'), qr/12345barz/,
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
122 'r.args iteration');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
123 like(http_get('/iter?foo=123&foo2=&foo3&foo4=456'), qr/123456/,
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
124 'r.args iteration 2');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
125 like(http_get('/iter?foo=123&foo2=&foo3'), qr/123/, 'r.args iteration 3');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
126 like(http_get('/iter?foo=123&foo2='), qr/123/, 'r.args iteration 4');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
127 like(http_get('/iter?foo=1&foo=2'), qr/1,2/m, 'r.args iteration 5');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
128
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
129 like(http_get('/keys?b=1&c=2&a=5'), qr/a,b,c/m, 'r.args sorted keys');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
130 like(http_get('/keys?b=1&b=2'), qr/b/m, 'r.args duplicate keys');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
131 like(http_get('/keys?b=1&a&c='), qr/a,b,c/m, 'r.args empty value');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
132
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
133 is(get_json('/object'), '{}', 'empty object');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
134 is(get_json('/object?a=1&b=2&c=3'), '{"a":"1","b":"2","c":"3"}',
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
135 'ordinary object');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
136 is(get_json('/object?a=1&A=2'), '{"A":"2","a":"1"}',
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
137 'case sensitive object');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
138 is(get_json('/object?a=1&A=2&a=3'), '{"A":"2","a":["1","3"]}',
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
139 'duplicate keys object');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
140 is(get_json('/object?%61=1&a=2'), '{"a":["1","2"]}',
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
141 'keys percent-encoded object');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
142 is(get_json('/object?a=%62%63&b=%63%64'), '{"a":"bc","b":"cd"}',
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
143 'values percent-encoded object');
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
144 is(get_json('/object?a=%6&b=%&c=%%&d=%zz'),
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
145 '{"a":"%6","b":"%","c":"%%","d":"%zz"}',
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
146 'values percent-encoded broken object');
1811
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
147
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
148 ###############################################################################
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
149
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
150 sub has_version {
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
151 my $need = shift;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
152
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
153 http_get('/njs') =~ /^([.0-9]+)$/m;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
154
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
155 my @v = split(/\./, $1);
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
156 my ($n, $v);
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
157
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
158 for $n (split(/\./, $need)) {
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
159 $v = shift @v || 0;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
160 return 0 if $n > $v;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
161 return 1 if $v > $n;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
162 }
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
163
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1778
diff changeset
164 return 1;
1778
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
165 }
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
166
0979f22e3a5b Tests: added extended request arguments tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
167 ###############################################################################