Mercurial > hg > nginx-tests
annotate js_var.t @ 1893:6dcf5a1df790
Tests: basic QUIC connection migration tests.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 23 May 2023 18:55:06 +0400 |
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 ############################################################################### |