Mercurial > hg > nginx-tests
annotate mail_max_errors.t @ 1812:f98884ad7700
Test: avoiding forbidden Host header in js fetch tests.
author | Dmitry Volyntsev <xeioex@nginx.com> |
---|---|
date | Fri, 02 Dec 2022 17:46:32 -0800 |
parents | 41b213d611f5 |
children | 2a0a6035a1af |
rev | line source |
---|---|
1687
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 # Tests for mail max_errors. |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 ############################################################################### |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 use warnings; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 use strict; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
12 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 use Test::More; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
14 use Socket qw/ CRLF /; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
15 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
16 BEGIN { use FindBin; chdir($FindBin::Bin); } |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
17 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
18 use lib 'lib'; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
19 use Test::Nginx; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 use Test::Nginx::IMAP; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
21 use Test::Nginx::POP3; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
22 use Test::Nginx::SMTP; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
23 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
24 ############################################################################### |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
25 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
26 select STDERR; $| = 1; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
27 select STDOUT; $| = 1; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
28 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
29 local $SIG{PIPE} = 'IGNORE'; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
30 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
31 my $t = Test::Nginx->new()->has(qw/mail imap pop3 smtp/) |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
32 ->write_file_expand('nginx.conf', <<'EOF'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
33 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
34 %%TEST_GLOBALS%% |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
35 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
36 daemon off; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
37 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
38 events { |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
39 } |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
40 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
41 mail { |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
42 auth_http http://127.0.0.1:8080; # unused |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
43 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
44 max_errors 2; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
45 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
46 server { |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
47 listen 127.0.0.1:8143; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
48 protocol imap; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
49 } |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
50 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
51 server { |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
52 listen 127.0.0.1:8110; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
53 protocol pop3; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
54 } |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
55 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 server { |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
57 listen 127.0.0.1:8025; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
58 protocol smtp; |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
59 } |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
60 } |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
61 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
62 EOF |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
63 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
64 $t->try_run('no max_errors')->plan(18); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
65 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
66 ############################################################################### |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
67 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
68 # imap |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
69 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
70 my $s = Test::Nginx::IMAP->new(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
71 $s->read(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
72 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
73 $s->send('a01 FOO'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
74 $s->check(qr/^a01 BAD/, 'imap first error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
75 $s->send('a02 BAR'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
76 $s->check(qr/^a02 BAD/, 'imap second error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
77 $s->send('a03 BAZZ'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
78 $s->check(qr/^$/, 'imap max errors'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
79 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
80 $s = Test::Nginx::IMAP->new(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
81 $s->read(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
82 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
83 $s->send('a01 FOO' . CRLF . 'a02 BAR' . CRLF . 'a03 BAZZ'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
84 $s->check(qr/^a01 BAD/, 'imap pipelined first error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
85 $s->check(qr/^a02 BAD/, 'imap pipelined second error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
86 $s->check(qr/^$/, 'imap pipelined max errors'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
87 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
88 # pop3 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
89 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
90 $s = Test::Nginx::POP3->new(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
91 $s->read(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
92 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
93 $s->send('FOO'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
94 $s->check(qr/^-ERR/, 'pop3 first error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
95 $s->send('BAR'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
96 $s->check(qr/^-ERR/, 'pop3 second error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
97 $s->send('BAZZ'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
98 $s->check(qr/^$/, 'pop3 max errors'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
99 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
100 $s = Test::Nginx::POP3->new(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
101 $s->read(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
102 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
103 $s->send('FOO' . CRLF . 'BAR' . CRLF . 'BAZZ'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
104 $s->check(qr/^-ERR/, 'pop3 pipelined first error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
105 $s->check(qr/^-ERR/, 'pop3 pipelined second error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
106 $s->check(qr/^$/, 'pop3 pipelined max errors'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
107 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
108 # smtp |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
109 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
110 $s = Test::Nginx::SMTP->new(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
111 $s->read(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
112 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
113 $s->send('FOO'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
114 $s->check(qr/^5.. /, 'smtp first error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
115 $s->send('BAR'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
116 $s->check(qr/^5.. /, 'smtp second error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
117 $s->send('BAZZ'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
118 $s->check(qr/^$/, 'smtp max errors'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
119 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
120 $s = Test::Nginx::SMTP->new(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
121 $s->read(); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
122 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
123 $s->send('FOO' . CRLF . 'BAR' . CRLF . 'BAZZ'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
124 $s->check(qr/^5.. /, 'smtp pipelined first error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
125 $s->check(qr/^5.. /, 'smtp pipelined second error'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
126 $s->check(qr/^$/, 'smtp pipelined max errors'); |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
127 |
41b213d611f5
Tests: mail max_errors tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
128 ############################################################################### |