Mercurial > hg > nginx-tests
annotate js_headers.t @ 1892:a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 09 May 2023 19:49:44 +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 ############################################################################### |