Mercurial > hg > nginx-tests
annotate js_headers.t @ 1888:cc13f7b098db
Tests: avoid premature stream reset in h3_limit_req.t.
STREAM and RESET_STREAM frames could be batched, which prevents the stream
from being processed and changes the status code. The fix is to wait for
the stream acknowledgment. Here we just look at the largest acknowledged,
this should be enough for simple cases.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 04 Apr 2023 00:33:54 +0400 |
parents | 520fb74cce4c |
children |
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 ############################################################################### |