annotate js_dump.t @ 1689:dbd19195df8a

Tests: adjusted mail_smtp.t "long pipelined" TODO. Prior to fixed reading with fully filled buffer in 2851e4c7de03 (1.21.0), test for long pipelined commands leads to connection close by nginx, which can result in RST and no response seen by the client, notably on win32. While here, cleaned up permitted smtp_auth methods in that particular server.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 24 May 2021 22:09:54 +0300
parents c56df3527161
children 18ac4d9e5a2a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1534
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
3 # (C) Dmitry Volyntsev
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
6 # Tests for http njs module, request object dump.
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14 use Socket qw/ CRLF /;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
15
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
16 BEGIN { use FindBin; chdir($FindBin::Bin); }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18 use lib 'lib';
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19 use Test::Nginx;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21 ###############################################################################
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26 my $t = Test::Nginx->new()->has(qw/http rewrite/)
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31 daemon off;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33 events {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
36 http {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
38
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
39 js_include test.js;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
40
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
41 server {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
42 listen 127.0.0.1:8080;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
43 server_name localhost;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
44
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
45 location /dump {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
46 js_content test_dump;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
47 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
48
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
49 location /stringify {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
50 js_content test_stringify;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
52
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
53 location /stringify_subrequest {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
54 js_content test_stringify_subrequest;
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
55 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
56
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
57 location /js_sub {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
58 return 201 '{$request_method}';
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
59 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
60 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
61 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
62
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
63 EOF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
64
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65 $t->write_file('test.js', <<EOF);
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
66 function test_dump(r) {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67 r.headersOut.baz = 'bar';
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
68 r.return(200, njs.dump(r));
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
69 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
70
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71 function test_stringify(r) {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
72 r.headersOut.baz = 'bar';
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
73 var obj = JSON.parse(JSON.stringify(r));
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
74 r.return(200, JSON.stringify(obj));
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
75 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
76
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
77 function test_stringify_subrequest(r) {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
78 r.subrequest('/js_sub', reply => {
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79 r.return(200, JSON.stringify(reply))
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
80 });
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
81 }
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
82
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
83 EOF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
84
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
85 $t->try_run('no njs dump')->plan(3);
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
86
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87 ###############################################################################
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
88
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
89 like(http(
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
90 'GET /dump?v=1&t=x HTTP/1.0' . CRLF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 . 'Foo: bar' . CRLF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
92 . 'Foo2: bar2' . CRLF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
93 . 'Host: localhost' . CRLF . CRLF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
94 ), qr/method:'GET'/, 'njs.dump(r)');
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
95
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
96 like(http(
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
97 'GET /stringify?v=1&t=x HTTP/1.0' . CRLF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
98 . 'Foo: bar' . CRLF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
99 . 'Foo2: bar2' . CRLF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
100 . 'Host: localhost' . CRLF . CRLF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
101 ), qr/headersOut":\{"baz":"bar"}/, 'JSON.stringify(r)');
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
102
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
103 like(http(
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
104 'GET /stringify_subrequest HTTP/1.0' . CRLF
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
105 . 'Host: localhost' . CRLF . CRLF
1617
c56df3527161 Tests: adapted js_dump.t to upcoming changes in 0.5.0.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
106 ), qr/"status":201/, 'JSON.stringify(reply)');
1534
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
107
96fb3513345b Tests: added js dump tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
108 ###############################################################################