annotate js_import.t @ 1728:6d5ecf445e57

Tests: added HTTP/2 test with big request body. Notably, it is useful with body buffering in filters, in which case the stream window is flow controlled based on the preread buffer.
author Sergey Kandaurov <pluknet@nginx.com>
date Sat, 04 Sep 2021 14:50:02 +0300
parents b4f528987146
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1562
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
3 # (C) Dmitry Volyntsev
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (c) Nginx, Inc.
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
6 # Tests for http njs module, js_import directive.
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
16
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17 use lib 'lib';
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20 ###############################################################################
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http/)
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26 ->write_file_expand('nginx.conf', <<'EOF');
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28 %%TEST_GLOBALS%%
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30 daemon off;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32 events {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35 http {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
36 %%TEST_GLOBALS_HTTP%%
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
37
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
38 js_set $test foo.bar.p;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
39
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
40 js_import lib.js;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
41 js_import fun.js;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
42 js_import foo from ./main.js;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
43
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
44 server {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
45 listen 127.0.0.1:8080;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
46 server_name localhost;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
47
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
48 location /njs {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
49 js_content foo.version;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
50 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
52 location /test_foo {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
53 js_content foo.test;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
54 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
55
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
56 location /test_lib {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
57 js_content lib.test;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
58 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
59
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
60 location /test_fun {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
61 js_content fun;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
62 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
63
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
64 location /test_var {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65 return 200 $test;
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
66 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
68 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
69
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
70 EOF
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
72 $t->write_file('lib.js', <<EOF);
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
73 function test(r) {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
74 r.return(200, "LIB-TEST");
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
75 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
76
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
77 export default {test};
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
78
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79 EOF
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
80
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
81 $t->write_file('fun.js', <<EOF);
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
82 export default function (r) {r.return(200, "FUN-TEST")};
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
83
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
84 EOF
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
85
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
86 $t->write_file('main.js', <<EOF);
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87 function version(r) {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
88 r.return(200, njs.version);
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
89 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
90
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 function test(r) {
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
92 r.return(200, "MAIN-TEST");
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
93 }
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
94
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
95 export default {version, test, bar: {p(r) {return "P-TEST"}}};
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
96
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
97 EOF
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
98
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
99 $t->try_run('no njs available')->plan(4);
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
100
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
101 ###############################################################################
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
102
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
103 like(http_get('/test_foo'), qr/MAIN-TEST/s, 'foo.test');
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
104 like(http_get('/test_lib'), qr/LIB-TEST/s, 'lib.test');
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
105 like(http_get('/test_fun'), qr/FUN-TEST/s, 'fun');
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
106 like(http_get('/test_var'), qr/P-TEST/s, 'foo.bar.p');
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
107
b4f528987146 Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
108 ###############################################################################