Mercurial > hg > nginx-tests
annotate msie_refresh.t @ 1974:b5036a0f9ae0
Tests: improved compatibility when using recent "openssl" app.
Starting with OpenSSL 3.0, "openssl genrsa" generates encrypted keys
in PKCS#8 format instead of previously used PKCS#1 format. Further,
since OpenSSL 1.1.0 such keys are using PBKDF2 hmacWithSHA256.
Such keys are not supported by old SSL libraries, notably by OpenSSL
before 1.0.0 (OpenSSL 0.9.8 only supports hmacWithSHA1) and by BoringSSL
before May 21, 2019 (support for hmacWithSHA256 was added in 302a4dee6c),
and trying to load such keys into nginx compiled with an old SSL library
results in "unsupported prf" errors.
To facilitate testing with old SSL libraries, keys are now generated
with "openssl genrsa -traditional" if the flag is available.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 06 May 2024 00:04:26 +0300 |
parents | 05b2033f5377 |
children |
rev | line source |
---|---|
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
1257
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
6 # Test for msie_refresh. |
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 ############################################################################### |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 select STDERR; $| = 1; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 |
1257
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http rewrite ssi/)->plan(5) |
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 ->write_file_expand('nginx.conf', <<'EOF'); |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 %%TEST_GLOBALS%% |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 daemon off; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 events { |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 } |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 http { |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 %%TEST_GLOBALS_HTTP%% |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 server { |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 listen 127.0.0.1:8080; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 server_name localhost; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 |
1257
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
42 msie_refresh on; |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
43 |
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 location / { |
1257
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
45 return 301 text; |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
46 } |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
47 |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
48 location /space { |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
49 return 301 "space "; |
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 } |
1257
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
51 |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
52 location /error_page { |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
53 return 301; |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
54 error_page 301 text; |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
55 } |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
56 |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
57 location /off { |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
58 msie_refresh off; |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
59 return 301 text; |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
60 } |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
61 |
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 location /ssi { |
1257
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
63 ssi on; |
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 } |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 } |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 } |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 EOF |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 |
1257
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
70 $t->write_file('ssi.html', 'X<!--#include virtual="/" -->X'); |
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 $t->run(); |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 ############################################################################### |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 |
1257
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
75 like(get('/'), qr/Refresh.*URL=text"/, 'msie refresh'); |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
76 like(get('/space'), qr/URL=space%20"/, 'msie refresh escaped url'); |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
77 like(get('/error_page'), qr/URL=text"/, 'msie refresh error page'); |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
78 |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
79 unlike(get('/off'), qr/Refresh/, 'msie refresh disabled'); |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
80 |
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
81 unlike(get('/ssi.html'), qr/^0\x0d\x0a?\x0d\x0a?\w/m, 'only final chunk'); |
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 ############################################################################### |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 sub get { |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 my ($url, $extra) = @_; |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 return http(<<EOF); |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 GET $url HTTP/1.1 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 Host: localhost |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
90 Connection: close |
1257
05b2033f5377
Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
91 User-Agent: MSIE foo |
1056
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
92 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 EOF |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 } |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 |
1e41a0de0772
Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 ############################################################################### |