Mercurial > hg > nginx-tests
annotate js_var.t @ 1858:cdcd75657e52
Tests: added has_feature() tests for IO::Socket::SSL.
The following distinct features supported:
- "socket_ssl", which requires IO::Socket::SSL and also implies
existance of the IO::Socket::SSL::SSL_VERIFY_NONE() symbol.
It is used by most of the tests.
- "socket_ssl_sni", which requires IO::Socket::SSL with the can_client_sni()
function (1.84), and SNI support available in Net::SSLeay and the OpenSSL
library being used. Used by ssl_sni.t, ssl_sni_sessions.t,
stream_ssl_preread.t. Additional Net::SSLeay testing is believed to be
unneeded and was removed.
- "socket_ssl_alpn", which requires IO::Socket::SSL with ALPN support (2.009),
and ALPN support in Net::SSLeay and the OpenSSL library being used.
Used by h2_ssl.t, h2_ssl_verify_client.t, stream_ssl_alpn.t,
stream_ssl_preread_alpn.t.
- "socket_ssl_sslversion", which requires IO::Socket::SSL with
the get_sslversion() and get_sslversion_int() methods (1.964).
Used by mail_imap_ssl.t.
- "socket_ssl_reused", which requires IO::Socket::SSL with
the get_session_reused() method (2.057). To be used in the following
patches.
This makes it possible to simplify and unify various SSL tests.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 18 May 2023 18:07:02 +0300 |
parents | 9d4c88e5c183 |
children |
rev | line source |
---|---|
1666
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
2 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
3 # (C) Dmitry Volyntsev |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
5 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
6 # Tests for http njs module, js_var directive. |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
7 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
9 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
11 use strict; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
12 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
14 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
16 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
19 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
20 ############################################################################### |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
21 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
22 select STDERR; $| = 1; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
24 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http rewrite/) |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
26 ->write_file_expand('nginx.conf', <<'EOF'); |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
27 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
28 %%TEST_GLOBALS%% |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
29 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
30 daemon off; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
31 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
32 events { |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
33 } |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
34 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
35 http { |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
36 %%TEST_GLOBALS_HTTP%% |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
37 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
38 js_import test.js; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
39 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
40 js_var $foo; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
41 js_var $bar a:$arg_a; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
42 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
43 server { |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
44 listen 127.0.0.1:8080; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
45 server_name localhost; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
46 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
47 location /test { |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
48 js_content test.test; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
49 } |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
50 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
51 location /sub { |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
52 return 200 DONE; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
53 } |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
54 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
55 location /dest { |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
56 return 200 $bar; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
57 } |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
58 } |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
59 } |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
60 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
61 EOF |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
62 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
63 $t->write_file('test.js', <<EOF); |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
64 function test(r) { |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
65 if (r.args.sub) { |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
66 r.subrequest('/sub') |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
67 .then(reply => { |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
68 r.variables.bar = reply.responseText; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
69 r.internalRedirect('/dest'); |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
70 }); |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
71 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
72 return; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
73 } |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
74 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
75 r.return(200, `V:\${r.variables[r.args.var]}`); |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
76 } |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
77 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
78 export default {test}; |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
79 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
80 EOF |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
81 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
82 $t->try_run('no njs js_var')->plan(3); |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
83 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
84 ############################################################################### |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
85 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
86 like(http_get('/test?var=bar&a=qq'), qr/200 OK.*V:a:qq$/s, 'default value'); |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
87 like(http_get('/test?var=foo'), qr/200 OK.*V:$/s, 'default empty value'); |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
88 like(http_get('/test?sub=1&var=bar&a=qq'), qr/200 OK.*DONE$/s, 'value set'); |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
89 |
9d4c88e5c183
Tests: added js_var directive tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
90 ############################################################################### |