Mercurial > hg > nginx-tests
view js_variables.t @ 1477:8b122b35703b
Tests: fixed session reuse tests in ssl_certificate.t with TLSv1.3.
Previously, session data was retrieved too early, before server passed
application data, which usually means NewSessionTicket is not yet sent.
The fix is to ask server for application data, then retrieve a session.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 20 May 2019 16:00:40 +0300 |
parents | 4281225b0c52 |
children | 9521130f6f22 |
line wrap: on
line source
#!/usr/bin/perl # (C) Dmitry Volyntsev # (C) Nginx, Inc. # Tests for http njs module, setting nginx variables. ############################################################################### 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_set $test_var test_var; js_include test.js; server { listen 127.0.0.1:8080; server_name localhost; set $foo foo_orig; location /njs { js_content test_njs; } location /var_set { return 200 $test_var$foo; } location /content_set { js_content content_set; } location /not_found_set { js_content not_found_set; } } } EOF $t->write_file('test.js', <<EOF); function test_njs(r) { r.return(200, njs.version); } function test_var(r) { r.variables.foo = r.variables.arg_a; return 'test_var'; } function content_set(r) { r.variables.foo = r.variables.arg_a; r.return(200, r.variables.foo); } function not_found_set(r) { try { r.variables.unknown = 1; } catch (e) { r.return(500, e); } } EOF $t->try_run('no njs')->plan(3); ############################################################################### TODO: { local $TODO = 'not yet' unless http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.2.8'; like(http_get('/var_set?a=bar'), qr/test_varbar/, 'var set'); like(http_get('/content_set?a=bar'), qr/bar/, 'content set'); like(http_get('/not_found_set'), qr/variable not found/, 'not found exception'); } ###############################################################################