Mercurial > hg > nginx-tests
annotate js_headers.t @ 1606:e4e0695552ed
Tests: fixed stream_proxy_ssl_conf_command.t.
The stream_proxy_ssl_conf_command.t test used stream return module
to return the response. Since this ignores actual request, but the
perl test code used http_get(). This might result in the request being
sent after the response is returned and the connection closed by the server,
resulting in RST being generated and no response seen by the client at all.
Fix is to use "stream(...)->read()" instead of http_get(), so
no request is sent at all, eliminating possibility of RST being
generated.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 10 Nov 2020 05:03:29 +0300 |
parents | 4cc012205ac5 |
children | 18ac4d9e5a2a |
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 |
1521
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
40 js_set $test_foo_in test_foo_in; |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
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 |
1439
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
43 js_include test.js; |
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 { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
50 js_content test_njs; |
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 { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
54 js_content content_length; |
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 { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
58 js_content content_length_arr; |
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 { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
62 js_content content_length_keys; |
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; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
69 js_content content_type; |
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; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
76 js_content content_type_arr; |
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 { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
80 js_content content_encoding; |
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 { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
84 js_content content_encoding_arr; |
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 { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
88 js_content headers_list; |
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 { |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
100 js_content 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 { |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
104 js_content raw_hdr_in; |
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 { |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
108 js_content hdr_out; |
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 { |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
112 js_content raw_hdr_out; |
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 { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
116 js_content hdr_out_array; |
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 { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
120 js_content hdr_out_set_cookie; |
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 { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
124 js_content hdr_out_single; |
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 { |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
128 js_content ihdr_out; |
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 { |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
132 js_content hdr_sorted_keys; |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
133 } |
1439
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
134 } |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
135 } |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
136 |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
137 EOF |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
138 |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
139 $t->write_file('test.js', <<EOF); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
140 function test_njs(r) { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
141 r.return(200, njs.version); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
142 } |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
143 |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
144 function content_length(r) { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
145 r.headersOut['Content-Length'] = ''; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
146 r.headersOut['Content-Length'] = 3; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
147 delete r.headersOut['Content-Length']; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
148 r.headersOut['Content-Length'] = 3; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
149 r.sendHeader(); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
150 r.send('XXX'); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
151 r.finish(); |
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 |
1563
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
154 function content_length_arr(r) { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
155 r.headersOut['Content-Length'] = [5]; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
156 r.headersOut['Content-Length'] = []; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
157 r.headersOut['Content-Length'] = [4,3]; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
158 r.sendHeader(); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
159 r.send('XXX'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
160 r.finish(); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
161 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
162 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
163 function content_length_keys(r) { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
164 r.headersOut['Content-Length'] = 3; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
165 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
|
166 r.return(200, `B:\${in_keys}`); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
167 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
168 |
1439
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
169 function content_type(r) { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
170 r.headersOut['Content-Type'] = 'text/xml'; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
171 r.headersOut['Content-Type'] = ''; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
172 r.headersOut['Content-Type'] = 'text/xml; charset='; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
173 delete r.headersOut['Content-Type']; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
174 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
|
175 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
|
176 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
|
177 r.return(200, `B:\${in_keys}`); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
178 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
179 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
180 function content_type_arr(r) { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
181 r.headersOut['Content-Type'] = ['text/html']; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
182 r.headersOut['Content-Type'] = []; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
183 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
|
184 r.return(200); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
185 } |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
186 |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
187 function content_encoding(r) { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
188 r.headersOut['Content-Encoding'] = ''; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
189 r.headersOut['Content-Encoding'] = 'test'; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
190 delete r.headersOut['Content-Encoding']; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
191 r.headersOut['Content-Encoding'] = 'gzip'; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
192 r.return(200); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
193 } |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
194 |
1563
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
195 function content_encoding_arr(r) { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
196 r.headersOut['Content-Encoding'] = 'test'; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
197 r.headersOut['Content-Encoding'] = []; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
198 r.headersOut['Content-Encoding'] = ['test', 'gzip']; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
199 r.return(200); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
200 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
201 |
1439
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
202 function headers_list(r) { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
203 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
|
204 r.headersOut[h] = h; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
205 } |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
206 |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
207 delete r.headersOut.b; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
208 r.headersOut.d = 'd'; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
209 |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
210 var out = ""; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
211 for (var h in r.headersOut) { |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
212 out += h + ":"; |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
213 } |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
214 |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
215 r.return(200, out); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
216 } |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
217 |
1521
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
218 function hdr_in(r) { |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
219 var s = '', h; |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
220 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
|
221 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
|
222 } |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
223 |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
224 r.return(200, s); |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
225 } |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
226 |
1568
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
227 function raw_hdr_in(r) { |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
228 var filtered = r.rawHeadersIn |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
229 .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
|
230 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
|
231 } |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
232 |
1525
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
233 function hdr_sorted_keys(r) { |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
234 var s = ''; |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
235 var hdr = r.args.in ? r.headersIn : r.headersOut; |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
236 |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
237 if (!r.args.in) { |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
238 r.headersOut.b = 'b'; |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
239 r.headersOut.c = 'c'; |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
240 r.headersOut.a = 'a'; |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
241 } |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
242 |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
243 r.return(200, Object.keys(hdr).sort()); |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
244 } |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
245 |
1521
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
246 function test_foo_in(r) { |
1440
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
247 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
|
248 } |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
249 |
1521
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
250 function test_ifoo_in(r) { |
1440
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
251 var s = '', h; |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
252 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
|
253 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
|
254 s += r.headersIn[h]; |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
255 } |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
256 } |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
257 return s; |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
258 } |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
259 |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
260 function hdr_out(r) { |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
261 r.status = 200; |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
262 r.headersOut['Foo'] = r.args.fOO; |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
263 |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
264 if (r.args.bar) { |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
265 r.headersOut['Bar'] = |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
266 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
|
267 } |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
268 |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
269 r.sendHeader(); |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
270 r.finish(); |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
271 } |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
272 |
1568
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
273 function raw_hdr_out(r) { |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
274 r.headersOut.a = ['foo', 'bar']; |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
275 r.headersOut.b = 'b'; |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
276 |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
277 var filtered = r.rawHeadersOut |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
278 .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
|
279 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
|
280 } |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
281 |
1563
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
282 function hdr_out_array(r) { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
283 if (!r.args.hidden) { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
284 r.headersOut['Foo'] = [r.args.fOO]; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
285 r.headersOut['Foo'] = []; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
286 r.headersOut['Foo'] = ['bar', r.args.fOO]; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
287 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
288 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
289 if (r.args.scalar_set) { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
290 r.headersOut['Foo'] = 'xxx'; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
291 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
292 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
293 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
|
294 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
295 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
296 function hdr_out_single(r) { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
297 r.headersOut.ETag = ['a', 'b']; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
298 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
|
299 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
300 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
301 function hdr_out_set_cookie(r) { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
302 r.headersOut['Set-Cookie'] = []; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
303 r.headersOut['Set-Cookie'] = ['a', 'b']; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
304 delete r.headersOut['Set-Cookie']; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
305 r.headersOut['Set-Cookie'] = 'e'; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
306 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
|
307 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
308 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
|
309 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
310 |
1440
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
311 function ihdr_out(r) { |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
312 r.status = 200; |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
313 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
|
314 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
|
315 |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
316 var s = '', h; |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
317 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
|
318 s += r.headersOut[h]; |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
319 } |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
320 |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
321 r.sendHeader(); |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
322 r.send(s); |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
323 r.finish(); |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
324 } |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
325 |
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
326 |
1439
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
327 EOF |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
328 |
1568
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
329 $t->try_run('no njs')->plan(39); |
1439
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
330 |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
331 ############################################################################### |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
332 |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
333 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
|
334 'set Content-Length'); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
335 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
|
336 'set Content-Type'); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
337 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
|
338 'set Content-Type 2'); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
339 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
|
340 'set Content-Encoding'); |
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
341 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
|
342 |
1440
5d0eb718f38e
Tests: moved njs http headers test to a separate file.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1439
diff
changeset
|
343 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
|
344 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
|
345 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
|
346 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
|
347 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
|
348 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
|
349 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
|
350 |
1563
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
351 TODO: { |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
352 local $TODO = 'not yet' |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
353 unless http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.4.0'; |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
354 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
355 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
|
356 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
|
357 'set Content-Length arr'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
358 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
359 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
|
360 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
|
361 'set Content-Type arr'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
362 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
|
363 'set Content-Encoding arr'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
364 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
365 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
|
366 'r.headersOut arr'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
367 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
|
368 'r.headersOut arr last is empty'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
369 like(http_get('/hdr_out_array?foo=abc'), qr/B:bar,abc/, |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
370 'r.headersOut get'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
371 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
|
372 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
|
373 'r.headersOut get3'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
374 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
|
375 'r.headersOut scalar set'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
376 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
|
377 'r.headersOut single'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
378 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
|
379 'r.headersOut single get'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
380 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
|
381 'set_cookie'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
382 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
|
383 'set_cookie2'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
384 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
|
385 'set_cookie3'); |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
386 |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
387 } |
c1d167a13c24
Tests: added js tests for multi-values headers.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1525
diff
changeset
|
388 |
1521
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
389 like(http( |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
390 '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
|
391 . 'Cookie: foo' . CRLF |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
392 . 'Host: localhost' . CRLF . CRLF |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
393 ), 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
|
394 |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
395 like(http( |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
396 '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
|
397 . '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
|
398 . 'Host: localhost' . CRLF . CRLF |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
399 ), 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
|
400 |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
401 like(http( |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
402 '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
|
403 . 'Cookie: foo1' . CRLF |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
404 . 'Cookie: foo2' . CRLF |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
405 . '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
|
406 ), 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
|
407 |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
408 like(http( |
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
409 '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
|
410 . '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
|
411 . '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
|
412 . '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
|
413 ), 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
|
414 |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
415 like(http( |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
416 '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
|
417 . 'ETag: bar1' . CRLF |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
418 . 'ETag: bar2' . CRLF |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
419 . '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
|
420 ), 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
|
421 |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
422 like(http( |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
423 '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
|
424 . '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
|
425 . '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
|
426 . '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
|
427 ), 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
|
428 |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
429 TODO: { |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
430 local $TODO = 'not yet' |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
431 unless http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.4.1'; |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
432 |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
433 like(http( |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
434 '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
|
435 . 'Foo: bar1' . CRLF |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
436 . 'Foo: bar2' . CRLF |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
437 . '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
|
438 ), qr/foo: bar1,bar2/, 'r.headersIn duplicate generic'); |
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
439 |
1568
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
440 like(http( |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
441 '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
|
442 . 'foo: bar1' . CRLF |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
443 . 'Foo: bar2' . CRLF |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
444 . 'Host: localhost' . CRLF . CRLF |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
445 ), qr/raw: bar1|bar2/, 'r.rawHeadersIn'); |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
446 |
4cc012205ac5
Tests: added js tests for raw headers API.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1566
diff
changeset
|
447 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
|
448 |
1566
5cf2f4da8bd5
Tests: added js tests for multi-values headers in r.headersIn.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1565
diff
changeset
|
449 } |
1521
b6699ffd9ddd
Tests: added Cookie and X-Forwarded-For r.headersIn tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1520
diff
changeset
|
450 |
1525
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
451 like(http( |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
452 '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
|
453 . 'Cookie: foo1' . CRLF |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
454 . 'Accept: */*' . CRLF |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
455 . 'Cookie: foo2' . CRLF |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
456 . 'Host: localhost' . CRLF . CRLF |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
457 ), qr/Accept,Cookie,Host/, 'r.headersIn sorted keys'); |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
458 |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
459 like(http( |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
460 'GET /hdr_sorted_keys HTTP/1.0' . CRLF |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
461 . 'Host: localhost' . CRLF . CRLF |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
462 ), qr/a,b,c/, 'r.headersOut sorted keys'); |
ca0858ef7d3d
Tests: added js keys tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1521
diff
changeset
|
463 |
1439
c083749bc47d
Tests: added njs http r.headersOut tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
464 ############################################################################### |