annotate js_request_body.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 386748f328b1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
1342
5833f3b7a884 Tests: adapted js_request_body.t for renamed property.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1322
diff changeset
3 # (C) Dmitry Volyntsev
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
1781
386748f328b1 Tests: updated js properties deprecated since 0.5.0.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1751
diff changeset
6 # Tests for http njs module, r.requestText method.
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
15 use Socket qw/ CRLF /;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
16
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19 use lib 'lib';
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20 use Test::Nginx;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22 ###############################################################################
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24 select STDERR; $| = 1;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25 select STDOUT; $| = 1;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27 my $t = Test::Nginx->new()->has(qw/http/)
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28 ->write_file_expand('nginx.conf', <<'EOF');
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30 %%TEST_GLOBALS%%
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32 daemon off;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34 events {
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35 }
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
36
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
37 http {
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
38 %%TEST_GLOBALS_HTTP%%
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
39
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
40 js_import test.js;
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
41
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
42 server {
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
43 listen 127.0.0.1:8080;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
44 server_name localhost;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
45
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
46 location /body {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
47 js_content test.body;
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
48 }
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
49
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
50 location /in_file {
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 client_body_in_file_only on;
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
52 js_content test.body;
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
53 }
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
54 }
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
55 }
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
56
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
57 EOF
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
58
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
59 $t->write_file('test.js', <<EOF);
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
60 function body(r) {
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
61 try {
1781
386748f328b1 Tests: updated js properties deprecated since 0.5.0.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1751
diff changeset
62 var body = r.requestText;
1342
5833f3b7a884 Tests: adapted js_request_body.t for renamed property.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1322
diff changeset
63 r.return(200, body);
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
64
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65 } catch (e) {
1342
5833f3b7a884 Tests: adapted js_request_body.t for renamed property.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1322
diff changeset
66 r.return(500, e.message);
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67 }
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
68 }
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
69
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
70 export default {body};
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
71
1322
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
72 EOF
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
73
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
74 $t->try_run('no njs request body')->plan(3);
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
75
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
76 ###############################################################################
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
77
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
78 like(http_post('/body'), qr/REQ-BODY/, 'request body');
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79 like(http_post('/in_file'), qr/request body is in a file/,
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
80 'request body in file');
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
81 like(http_post_big('/body'), qr/200.*^(1234567890){1024}$/ms,
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
82 'request body big');
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
83
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
84 ###############################################################################
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
85
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
86 sub http_post {
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87 my ($url, %extra) = @_;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
88
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
89 my $p = "POST $url HTTP/1.0" . CRLF .
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
90 "Host: localhost" . CRLF .
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 "Content-Length: 8" . CRLF .
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
92 CRLF .
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
93 "REQ-BODY";
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
94
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
95 return http($p, %extra);
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
96 }
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
97
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
98 sub http_post_big {
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
99 my ($url, %extra) = @_;
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
100
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
101 my $p = "POST $url HTTP/1.0" . CRLF .
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
102 "Host: localhost" . CRLF .
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
103 "Content-Length: 10240" . CRLF .
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
104 CRLF .
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
105 ("1234567890" x 1024);
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
106
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
107 return http($p, %extra);
d6daf03478ad Tests: added njs request body tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
108 }
1451
9d579fc770a6 Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1342
diff changeset
109
9d579fc770a6 Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1342
diff changeset
110 ###############################################################################