annotate js_import2.t @ 1851:0351dee227a8

Tests: unbreak tests with dynamic certificates on stable. In 74cffa9d4c43, ticket based session reuse is enabled in addition to using a shared SSL session cache. This changed how a session can be resumed in a different server: - for a session ID based resumption, it is resumed in the same context - when using session tickets, a key name is also checked for matching - with a ticket callback, this is skipped in favor of callback's logic This makes 'session id context match' tests fail with session tickets on stable since ticket key names are unique in distinct SSL contexts. On the other hand, tests pass on 1.23.2+ due to automatic ticket keys rotation that installs ticket callback, and using a common shared SSL session cache.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 28 Mar 2023 01:36:32 +0400
parents 390cbd46c46b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1782
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
3 # (C) Dmitry Volyntsev
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (c) Nginx, Inc.
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
6 # Tests for http njs module, js_import directive in server | location contexts.
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
16
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17 use lib 'lib';
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20 ###############################################################################
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http proxy rewrite/)
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26 ->write_file_expand('nginx.conf', <<'EOF');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28 %%TEST_GLOBALS%%
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30 daemon off;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32 events {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35 http {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
36 %%TEST_GLOBALS_HTTP%%
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
37
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
38 server {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
39 listen 127.0.0.1:8080;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
40 server_name localhost;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
41
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
42 js_set $test foo.bar.p;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
43
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
44 js_import foo from main.js;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
45
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
46 location /njs {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
47 js_content foo.version;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
48 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
49
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
50 location /test_foo {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 js_content foo.test;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
52 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
53
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
54 location /test_lib {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
55 js_import lib.js;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
56 js_content lib.test;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
57 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
58
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
59 location /test_fun {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
60 js_import fun.js;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
61 js_content fun;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
62 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
63
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
64 location /test_var {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65 return 200 $test;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
66 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
68 location /proxy {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
69 proxy_pass http://127.0.0.1:8081/;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
70 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
72
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
73 server {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
74 listen 127.0.0.1:8081;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
75 server_name localhost;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
76
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
77 location /test_fun {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
78 js_import fun.js;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79 js_content fun;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
80 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
81 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
82 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
83
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
84 EOF
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
85
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
86 $t->write_file('lib.js', <<EOF);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87 function test(r) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
88 r.return(200, "LIB-TEST");
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
89 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
90
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 function p(r) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
92 return "LIB-P";
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
93 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
94
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
95 export default {test, p};
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
96
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
97 EOF
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
98
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
99 $t->write_file('fun.js', <<EOF);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
100 export default function (r) {r.return(200, "FUN-TEST")};
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
101
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
102 EOF
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
103
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
104 $t->write_file('main.js', <<EOF);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
105 function version(r) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
106 r.return(200, njs.version);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
107 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
108
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
109 function test(r) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
110 r.return(200, "MAIN-TEST");
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
111 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
112
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
113 export default {version, test, bar: {p(r) {return "P-TEST"}}};
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
114
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
115 EOF
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
116
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
117 $t->try_run('no njs available')->plan(5);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
118
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
119 ###############################################################################
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
120
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
121 like(http_get('/test_foo'), qr/MAIN-TEST/s, 'foo.test');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
122 like(http_get('/test_lib'), qr/LIB-TEST/s, 'lib.test');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
123 like(http_get('/test_fun'), qr/FUN-TEST/s, 'fun');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
124 like(http_get('/proxy/test_fun'), qr/FUN-TEST/s, 'proxy fun');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
125 like(http_get('/test_var'), qr/P-TEST/s, 'foo.bar.p');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
126
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
127 ###############################################################################