annotate js_headers.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 520fb74cce4c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
3 # (C) Dmitry Volyntsev
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
6 # Tests for http njs module, working with headers.
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14
1521
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
15 use Socket qw/ CRLF /;
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
16
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19 use lib 'lib';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20 use Test::Nginx;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22 ###############################################################################
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24 select STDERR; $| = 1;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25 select STDOUT; $| = 1;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27 my $t = Test::Nginx->new()->has(qw/http charset/)
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28 ->write_file_expand('nginx.conf', <<'EOF');
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30 %%TEST_GLOBALS%%
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32 daemon off;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34 events {
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
36
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
37 http {
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
38 %%TEST_GLOBALS_HTTP%%
c083749bc47d Tests: added njs http r.headersOut 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: 1568
diff changeset
40 js_set $test_foo_in test.foo_in;
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
41 js_set $test_ifoo_in test.ifoo_in;
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
42
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
43 js_import test.js;
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
44
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
45 server {
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
46 listen 127.0.0.1:8080;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
47 server_name localhost;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
48
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
49 location /njs {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
50 js_content test.njs;
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
52
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
53 location /content_length {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
54 js_content test.content_length;
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
55 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
56
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
57 location /content_length_arr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
58 js_content test.content_length_arr;
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
59 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
60
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
61 location /content_length_keys {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
62 js_content test.content_length_keys;
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
63 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
64
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65 location /content_type {
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
66 charset windows-1251;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
68 default_type text/plain;
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
69 js_content test.content_type;
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
70 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
72 location /content_type_arr {
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
73 charset windows-1251;
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
74
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
75 default_type text/plain;
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
76 js_content test.content_type_arr;
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
77 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
78
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79 location /content_encoding {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
80 js_content test.content_encoding;
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
81 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
82
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
83 location /content_encoding_arr {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
84 js_content test.content_encoding_arr;
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
85 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
86
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87 location /headers_list {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
88 js_content test.headers_list;
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
89 }
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
90
1521
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
91 location /foo_in {
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
92 return 200 $test_foo_in;
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
93 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
94
1521
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
95 location /ifoo_in {
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
96 return 200 $test_ifoo_in;
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
97 }
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
98
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
99 location /hdr_in {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
100 js_content test.hdr_in;
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
101 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
102
1568
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
103 location /raw_hdr_in {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
104 js_content test.raw_hdr_in;
1568
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
105 }
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
106
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
107 location /hdr_out {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
108 js_content test.hdr_out;
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
109 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
110
1568
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
111 location /raw_hdr_out {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
112 js_content test.raw_hdr_out;
1568
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
113 }
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
114
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
115 location /hdr_out_array {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
116 js_content test.hdr_out_array;
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
117 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
118
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
119 location /hdr_out_set_cookie {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
120 js_content test.hdr_out_set_cookie;
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
121 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
122
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
123 location /hdr_out_single {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
124 js_content test.hdr_out_single;
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
125 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
126
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
127 location /ihdr_out {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
128 js_content test.ihdr_out;
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
129 }
1525
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
130
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
131 location /hdr_sorted_keys {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
132 js_content test.hdr_sorted_keys;
1525
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
133 }
1775
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
134
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
135 location /hdr_out_special_set {
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
136 js_content test.hdr_out_special_set;
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
137 }
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
138
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
139 location /copy_subrequest_hdrs {
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
140 js_content test.copy_subrequest_hdrs;
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
141 }
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
142
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
143 location = /subrequest {
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
144 internal;
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
145
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
146 js_content test.subrequest;
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
147 }
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
148 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
149 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
150
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
151 EOF
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
152
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
153 $t->write_file('test.js', <<EOF);
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
154 function test_njs(r) {
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
155 r.return(200, njs.version);
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
156 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
157
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
158 function content_length(r) {
1773
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
159 if (njs.version_number >= 0x000705) {
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
160 var clength = r.headersOut['Content-Length'];
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
161 if (clength !== undefined) {
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
162 r.return(500, `Content-Length "\${clength}" is not empty`);
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
163 return;
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
164 }
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
165 }
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
166
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
167 delete r.headersOut['Content-Length'];
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
168 r.headersOut['Content-Length'] = '';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
169 r.headersOut['Content-Length'] = 3;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
170 delete r.headersOut['Content-Length'];
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
171 r.headersOut['Content-Length'] = 3;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
172 r.sendHeader();
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
173 r.send('XXX');
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
174 r.finish();
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
175 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
176
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
177 function content_length_arr(r) {
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
178 r.headersOut['Content-Length'] = [5];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
179 r.headersOut['Content-Length'] = [];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
180 r.headersOut['Content-Length'] = [4,3];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
181 r.sendHeader();
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
182 r.send('XXX');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
183 r.finish();
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
184 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
185
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
186 function content_length_keys(r) {
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
187 r.headersOut['Content-Length'] = 3;
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
188 var in_keys = Object.keys(r.headersOut).some(v=>v=='Content-Length');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
189 r.return(200, `B:\${in_keys}`);
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
190 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
191
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
192 function content_type(r) {
1773
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
193 if (njs.version_number >= 0x000705) {
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
194 var ctype = r.headersOut['Content-Type'];
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
195 if (ctype !== undefined) {
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
196 r.return(500, `Content-Type "\${ctype}" is not empty`);
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
197 return;
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
198 }
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
199 }
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
200
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
201 delete r.headersOut['Content-Type'];
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
202 r.headersOut['Content-Type'] = 'text/xml';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
203 r.headersOut['Content-Type'] = '';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
204 r.headersOut['Content-Type'] = 'text/xml; charset=';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
205 delete r.headersOut['Content-Type'];
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
206 r.headersOut['Content-Type'] = 'text/xml; charset=utf-8';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
207 r.headersOut['Content-Type'] = 'text/xml; charset="utf-8"';
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
208 var in_keys = Object.keys(r.headersOut).some(v=>v=='Content-Type');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
209 r.return(200, `B:\${in_keys}`);
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
210 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
211
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
212 function content_type_arr(r) {
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
213 r.headersOut['Content-Type'] = ['text/html'];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
214 r.headersOut['Content-Type'] = [];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
215 r.headersOut['Content-Type'] = [ 'text/xml', 'text/html'];
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
216 r.return(200);
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
217 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
218
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
219 function content_encoding(r) {
1773
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
220 if (njs.version_number >= 0x000705) {
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
221 var ce = r.headersOut['Content-Encoding'];
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
222 if (ce !== undefined) {
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
223 r.return(500, `Content-Encoding "\${ce}" is not empty`);
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
224 return;
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
225 }
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
226 }
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
227
3f9b25f36e19 Tests: added js headers tests when value is absent.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1761
diff changeset
228 delete r.headersOut['Content-Encoding'];
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
229 r.headersOut['Content-Encoding'] = '';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
230 r.headersOut['Content-Encoding'] = 'test';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
231 delete r.headersOut['Content-Encoding'];
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
232 r.headersOut['Content-Encoding'] = 'gzip';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
233 r.return(200);
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
234 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
235
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
236 function content_encoding_arr(r) {
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
237 r.headersOut['Content-Encoding'] = 'test';
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
238 r.headersOut['Content-Encoding'] = [];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
239 r.headersOut['Content-Encoding'] = ['test', 'gzip'];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
240 r.return(200);
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
241 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
242
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
243 function headers_list(r) {
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
244 for (var h in {a:1, b:2, c:3}) {
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
245 r.headersOut[h] = h;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
246 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
247
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
248 delete r.headersOut.b;
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
249 r.headersOut.d = 'd';
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
250
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
251 var out = "";
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
252 for (var h in r.headersOut) {
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
253 out += h + ":";
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
254 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
255
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
256 r.return(200, out);
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
257 }
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
258
1521
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
259 function hdr_in(r) {
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
260 var s = '', h;
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
261 for (h in r.headersIn) {
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
262 s += `\${h.toLowerCase()}: \${r.headersIn[h]}\n`;
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
263 }
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
264
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
265 r.return(200, s);
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
266 }
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
267
1568
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
268 function raw_hdr_in(r) {
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
269 var filtered = r.rawHeadersIn
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
270 .filter(v=>v[0].toLowerCase() == r.args.filter);
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
271 r.return(200, 'raw:' + filtered.map(v=>v[1]).join('|'));
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
272 }
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
273
1525
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
274 function hdr_sorted_keys(r) {
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
275 var s = '';
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
276 var hdr = r.args.in ? r.headersIn : r.headersOut;
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
277
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
278 if (!r.args.in) {
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
279 r.headersOut.b = 'b';
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
280 r.headersOut.c = 'c';
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
281 r.headersOut.a = 'a';
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
282 }
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
283
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
284 r.return(200, Object.keys(hdr).sort());
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
285 }
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
286
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
287 function foo_in(r) {
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
288 return 'hdr=' + r.headersIn.foo;
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
289 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
290
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
291 function ifoo_in(r) {
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
292 var s = '', h;
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
293 for (h in r.headersIn) {
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
294 if (h.substr(0, 3) == 'foo') {
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
295 s += r.headersIn[h];
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
296 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
297 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
298 return s;
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
299 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
300
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
301 function hdr_out(r) {
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
302 r.status = 200;
1777
410072f42157 Tests: removing js case-insensitive tests for r.args.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1776
diff changeset
303 r.headersOut['Foo'] = r.args.foo;
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
304
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
305 if (r.args.bar) {
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
306 r.headersOut['Bar'] =
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
307 r.headersOut[(r.args.bar == 'empty' ? 'Baz' :'Foo')]
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
308 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
309
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
310 r.sendHeader();
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
311 r.finish();
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
312 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
313
1568
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
314 function raw_hdr_out(r) {
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
315 r.headersOut.a = ['foo', 'bar'];
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
316 r.headersOut.b = 'b';
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
317
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
318 var filtered = r.rawHeadersOut
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
319 .filter(v=>v[0].toLowerCase() == r.args.filter);
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
320 r.return(200, 'raw:' + filtered.map(v=>v[1]).join('|'));
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
321 }
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
322
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
323 function hdr_out_array(r) {
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
324 if (!r.args.hidden) {
1777
410072f42157 Tests: removing js case-insensitive tests for r.args.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1776
diff changeset
325 r.headersOut['Foo'] = [r.args.foo];
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
326 r.headersOut['Foo'] = [];
1777
410072f42157 Tests: removing js case-insensitive tests for r.args.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1776
diff changeset
327 r.headersOut['Foo'] = ['bar', r.args.foo];
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
328 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
329
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
330 if (r.args.scalar_set) {
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
331 r.headersOut['Foo'] = 'xxx';
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
332 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
333
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
334 r.return(200, `B:\${njs.dump(r.headersOut.foo)}`);
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
335 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
336
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
337 function hdr_out_single(r) {
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
338 r.headersOut.ETag = ['a', 'b'];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
339 r.return(200, `B:\${njs.dump(r.headersOut.etag)}`);
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
340 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
341
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
342 function hdr_out_set_cookie(r) {
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
343 r.headersOut['Set-Cookie'] = [];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
344 r.headersOut['Set-Cookie'] = ['a', 'b'];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
345 delete r.headersOut['Set-Cookie'];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
346 r.headersOut['Set-Cookie'] = 'e';
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
347 r.headersOut['Set-Cookie'] = ['c', '', null, 'd', 'f'];
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
348
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
349 r.return(200, `B:\${njs.dump(r.headersOut['Set-Cookie'])}`);
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
350 }
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
351
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
352 function ihdr_out(r) {
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
353 r.status = 200;
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
354 r.headersOut['a'] = r.args.a;
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
355 r.headersOut['b'] = r.args.b;
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
356
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
357 var s = '', h;
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
358 for (h in r.headersOut) {
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
359 s += r.headersOut[h];
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
360 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
361
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
362 r.sendHeader();
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
363 r.send(s);
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
364 r.finish();
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
365 }
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
366
1775
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
367 function hdr_out_special_set(r) {
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
368 r.headersOut['Foo'] = "xxx";
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
369 r.headersOut['Content-Encoding'] = 'abc';
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
370
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
371 let ce = r.headersOut['Content-Encoding'];
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
372 r.return(200, `CE: \${ce}`);
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
373 }
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
374
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
375 async function copy_subrequest_hdrs(r) {
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
376 let resp = await r.subrequest("/subrequest");
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
377
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
378 for (const h in resp.headersOut) {
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
379 r.headersOut[h] = resp.headersOut[h];
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
380 }
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
381
1781
386748f328b1 Tests: updated js properties deprecated since 0.5.0.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1777
diff changeset
382 r.return(200, resp.responseText);
1775
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
383 }
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
384
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
385 function subrequest(r) {
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
386 r.headersOut['A'] = 'a';
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
387 r.headersOut['Content-Encoding'] = 'ce';
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
388 r.headersOut['B'] = 'b';
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
389 r.headersOut['C'] = 'c';
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
390 r.headersOut['D'] = 'd';
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
391 r.headersOut['Set-Cookie'] = ['A', 'BB'];
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
392 r.headersOut['Content-Length'] = 3;
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
393 r.headersOut['Content-Type'] = 'ct';
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
394 r.sendHeader();
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
395 r.send('XXX');
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
396 r.finish();
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
397 }
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
398
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
399 export default {njs:test_njs, content_length, content_length_arr,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
400 content_length_keys, content_type, content_type_arr,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
401 content_encoding, content_encoding_arr, headers_list,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
402 hdr_in, raw_hdr_in, hdr_sorted_keys, foo_in, ifoo_in,
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
403 hdr_out, raw_hdr_out, hdr_out_array, hdr_out_single,
1775
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
404 hdr_out_set_cookie, ihdr_out, hdr_out_special_set,
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
405 copy_subrequest_hdrs, subrequest};
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1568
diff changeset
406
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
407
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
408 EOF
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
409
1775
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
410 $t->try_run('no njs')->plan(42);
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
411
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
412 ###############################################################################
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
413
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
414 like(http_get('/content_length'), qr/Content-Length: 3/,
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
415 'set Content-Length');
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
416 like(http_get('/content_type'), qr/Content-Type: text\/xml; charset="utf-8"\r/,
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
417 'set Content-Type');
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
418 unlike(http_get('/content_type'), qr/Content-Type: text\/plain/,
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
419 'set Content-Type 2');
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
420 like(http_get('/content_encoding'), qr/Content-Encoding: gzip/,
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
421 'set Content-Encoding');
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
422 like(http_get('/headers_list'), qr/a:c:d/, 'headers list');
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
423
1440
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
424 like(http_get('/ihdr_out?a=12&b=34'), qr/^1234$/m, 'r.headersOut iteration');
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
425 like(http_get('/ihdr_out'), qr/\x0d\x0a?\x0d\x0a?$/m, 'r.send zero');
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
426 like(http_get('/hdr_out?foo=12345'), qr/Foo: 12345/, 'r.headersOut');
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
427 like(http_get('/hdr_out?foo=123&bar=copy'), qr/Bar: 123/, 'r.headersOut get');
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
428 unlike(http_get('/hdr_out?bar=empty'), qr/Bar:/, 'r.headersOut empty');
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
429 unlike(http_get('/hdr_out?foo='), qr/Foo:/, 'r.headersOut no value');
5d0eb718f38e Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1439
diff changeset
430 unlike(http_get('/hdr_out?foo'), qr/Foo:/, 'r.headersOut no value 2');
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
431
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
432 like(http_get('/content_length_keys'), qr/B:true/, 'Content-Length in keys');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
433 like(http_get('/content_length_arr'), qr/Content-Length: 3/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
434 'set Content-Length arr');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
435
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
436 like(http_get('/content_type'), qr/B:true/, 'Content-Type in keys');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
437 like(http_get('/content_type_arr'), qr/Content-Type: text\/html/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
438 'set Content-Type arr');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
439 like(http_get('/content_encoding_arr'), qr/Content-Encoding: gzip/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
440 'set Content-Encoding arr');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
441
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
442 like(http_get('/hdr_out_array?foo=12345'), qr/Foo: bar\r\nFoo: 12345/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
443 'r.headersOut arr');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
444 like(http_get('/hdr_out_array'), qr/Foo: bar/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
445 'r.headersOut arr last is empty');
1761
c0dfbedf52bd Tests: adapted js_headers.t to upcoming changes in njs.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1751
diff changeset
446 like(http_get('/hdr_out_array?foo=abc'), qr/B:bar,\s?abc/,
1563
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
447 'r.headersOut get');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
448 like(http_get('/hdr_out_array'), qr/B:bar/, 'r.headersOut get2');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
449 like(http_get('/hdr_out_array?hidden=1'), qr/B:undefined/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
450 'r.headersOut get3');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
451 like(http_get('/hdr_out_array?scalar_set=1'), qr/B:xxx/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
452 'r.headersOut scalar set');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
453 like(http_get('/hdr_out_single'), qr/ETag: a\r\nETag: b/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
454 'r.headersOut single');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
455 like(http_get('/hdr_out_single'), qr/B:a/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
456 'r.headersOut single get');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
457 like(http_get('/hdr_out_set_cookie'), qr/Set-Cookie: c\r\nSet-Cookie: d/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
458 'set_cookie');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
459 like(http_get('/hdr_out_set_cookie'), qr/B:\['c','d','f']/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
460 'set_cookie2');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
461 unlike(http_get('/hdr_out_set_cookie'), qr/Set-Cookie: [abe]/,
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
462 'set_cookie3');
c1d167a13c24 Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1525
diff changeset
463
1521
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
464 like(http(
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
465 'GET /hdr_in HTTP/1.0' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
466 . 'Cookie: foo' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
467 . 'Host: localhost' . CRLF . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
468 ), qr/cookie: foo/, 'r.headersIn cookie');
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
469
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
470 like(http(
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
471 'GET /hdr_in HTTP/1.0' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
472 . 'X-Forwarded-For: foo' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
473 . 'Host: localhost' . CRLF . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
474 ), qr/x-forwarded-for: foo/, 'r.headersIn xff');
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
475
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
476 like(http(
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
477 'GET /hdr_in HTTP/1.0' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
478 . 'Cookie: foo1' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
479 . 'Cookie: foo2' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
480 . 'Host: localhost' . CRLF . CRLF
1566
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
481 ), qr/cookie: foo1;\s?foo2/, 'r.headersIn cookie2');
1521
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
482
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
483 like(http(
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
484 'GET /hdr_in HTTP/1.0' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
485 . 'X-Forwarded-For: foo1' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
486 . 'X-Forwarded-For: foo2' . CRLF
b6699ffd9ddd Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1520
diff changeset
487 . 'Host: localhost' . CRLF . CRLF
1566
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
488 ), qr/x-forwarded-for: foo1,\s?foo2/, 'r.headersIn xff2');
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
489
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
490 like(http(
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
491 'GET /hdr_in HTTP/1.0' . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
492 . 'ETag: bar1' . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
493 . 'ETag: bar2' . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
494 . 'Host: localhost' . CRLF . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
495 ), qr/etag: bar1(?!,\s?bar2)/, 'r.headersIn duplicate single');
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
496
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
497 like(http(
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
498 'GET /hdr_in HTTP/1.0' . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
499 . 'Content-Type: bar1' . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
500 . 'Content-Type: bar2' . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
501 . 'Host: localhost' . CRLF . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
502 ), qr/content-type: bar1(?!,\s?bar2)/, 'r.headersIn duplicate single 2');
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
503
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
504 like(http(
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
505 'GET /hdr_in HTTP/1.0' . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
506 . 'Foo: bar1' . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
507 . 'Foo: bar2' . CRLF
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
508 . 'Host: localhost' . CRLF . CRLF
1761
c0dfbedf52bd Tests: adapted js_headers.t to upcoming changes in njs.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1751
diff changeset
509 ), qr/foo: bar1,\s?bar2/, 'r.headersIn duplicate generic');
1566
5cf2f4da8bd5 Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1565
diff changeset
510
1568
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
511 like(http(
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
512 'GET /raw_hdr_in?filter=foo HTTP/1.0' . CRLF
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
513 . 'foo: bar1' . CRLF
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
514 . 'Foo: bar2' . CRLF
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
515 . 'Host: localhost' . CRLF . CRLF
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
516 ), qr/raw: bar1|bar2/, 'r.rawHeadersIn');
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
517
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
518 like(http_get('/raw_hdr_out?filter=a'), qr/raw: foo|bar/, 'r.rawHeadersOut');
4cc012205ac5 Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1566
diff changeset
519
1525
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
520 like(http(
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
521 'GET /hdr_sorted_keys?in=1 HTTP/1.0' . CRLF
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
522 . 'Cookie: foo1' . CRLF
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
523 . 'Accept: */*' . CRLF
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
524 . 'Cookie: foo2' . CRLF
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
525 . 'Host: localhost' . CRLF . CRLF
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
526 ), qr/Accept,Cookie,Host/, 'r.headersIn sorted keys');
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
527
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
528 like(http(
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
529 'GET /hdr_sorted_keys HTTP/1.0' . CRLF
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
530 . 'Host: localhost' . CRLF . CRLF
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
531 ), qr/a,b,c/, 'r.headersOut sorted keys');
ca0858ef7d3d Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1521
diff changeset
532
1775
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
533 TODO: {
1811
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
534 local $TODO = 'not yet' unless has_version('0.7.6');
1775
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
535
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
536 like(http_get('/hdr_out_special_set'), qr/CE: abc/,
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
537 'r.headerOut special set');
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
538
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
539 like(http_get('/copy_subrequest_hdrs'),
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
540 qr/A: a.*B: b.*C: c.*D: d.*Set-Cookie: A.*Set-Cookie: BB/s,
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
541 'subrequest copy');
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
542
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
543 like(http_get('/copy_subrequest_hdrs'),
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
544 qr/Content-Type: ct.*Content-Encoding: ce.*Content-Length: 3/s,
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
545 'subrequest copy special');
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
546
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
547 }
eacfd2b64b71 Tests: added js headers test for multiple special headers set.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1773
diff changeset
548
1439
c083749bc47d Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
549 ###############################################################################
1811
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
550
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
551 sub has_version {
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
552 my $need = shift;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
553
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
554 http_get('/njs') =~ /^([.0-9]+)$/m;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
555
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
556 my @v = split(/\./, $1);
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
557 my ($n, $v);
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
558
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
559 for $n (split(/\./, $need)) {
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
560 $v = shift @v || 0;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
561 return 0 if $n > $v;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
562 return 1 if $v > $n;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
563 }
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
564
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
565 return 1;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
566 }
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
567
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1781
diff changeset
568 ###############################################################################