Mercurial > hg > nginx-tests
view js_var.t @ 1815:173c9b792c2c
Tests: fixed hostname verification in ssl_certificate_chain.t.
ssl_certificate_chain.t doesn't supply the hostname expected in a tested
certificate, which causes IO::Socket::SSL to fall back to an IP address
given in PeerAddr. As of IO::Socket::SSL 2.078, verification enabled by
default for such hostnames [1] results in "hostname verification failed"
errors.
To keep tests simple, the IP address is now included in subjectAltName.
[1] https://github.com/noxxi/p5-io-socket-ssl/issues/121
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 15 Dec 2022 21:02:18 +0400 |
parents | 9d4c88e5c183 |
children |
line wrap: on
line source
#!/usr/bin/perl # (C) Dmitry Volyntsev # (C) Nginx, Inc. # Tests for http njs module, js_var directive. ############################################################################### use warnings; use strict; use Test::More; BEGIN { use FindBin; chdir($FindBin::Bin); } use lib 'lib'; use Test::Nginx; ############################################################################### select STDERR; $| = 1; select STDOUT; $| = 1; my $t = Test::Nginx->new()->has(qw/http rewrite/) ->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% daemon off; events { } http { %%TEST_GLOBALS_HTTP%% js_import test.js; js_var $foo; js_var $bar a:$arg_a; server { listen 127.0.0.1:8080; server_name localhost; location /test { js_content test.test; } location /sub { return 200 DONE; } location /dest { return 200 $bar; } } } EOF $t->write_file('test.js', <<EOF); function test(r) { if (r.args.sub) { r.subrequest('/sub') .then(reply => { r.variables.bar = reply.responseText; r.internalRedirect('/dest'); }); return; } r.return(200, `V:\${r.variables[r.args.var]}`); } export default {test}; EOF $t->try_run('no njs js_var')->plan(3); ############################################################################### like(http_get('/test?var=bar&a=qq'), qr/200 OK.*V:a:qq$/s, 'default value'); like(http_get('/test?var=foo'), qr/200 OK.*V:$/s, 'default empty value'); like(http_get('/test?sub=1&var=bar&a=qq'), qr/200 OK.*DONE$/s, 'value set'); ###############################################################################