Mercurial > hg > nginx-tests
annotate smtp.t @ 7:9eb509695651
Tests: drop our own CRLF constant, use Socket's one instead.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 08 Sep 2008 06:08:38 +0400 |
parents | 4d75bdb05ecf |
children | f772e2a1a13f |
rev | line source |
---|---|
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 # Tests for nginx mail smtp module. |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 ############################################################################### |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 use warnings; |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 use strict; |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 |
4
6c41dbb2954f
Tests: run nginx with appropriate config from test itself.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3
diff
changeset
|
12 use Test::More tests => 28; |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
14 use MIME::Base64; |
7
9eb509695651
Tests: drop our own CRLF constant, use Socket's one instead.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5
diff
changeset
|
15 use Socket qw/ CRLF /; |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
16 |
5
4d75bdb05ecf
Tests: some generic code and ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4
diff
changeset
|
17 use _common; |
4d75bdb05ecf
Tests: some generic code and ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4
diff
changeset
|
18 |
4d75bdb05ecf
Tests: some generic code and ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4
diff
changeset
|
19 ############################################################################### |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 |
2
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
21 select STDERR; $| = 1; |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
22 select STDOUT; $| = 1; |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
23 |
5
4d75bdb05ecf
Tests: some generic code and ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4
diff
changeset
|
24 start_nginx('smtp.conf'); |
4
6c41dbb2954f
Tests: run nginx with appropriate config from test itself.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3
diff
changeset
|
25 |
6c41dbb2954f
Tests: run nginx with appropriate config from test itself.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3
diff
changeset
|
26 ############################################################################### |
6c41dbb2954f
Tests: run nginx with appropriate config from test itself.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3
diff
changeset
|
27 |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
28 my $s = smtp_connect(); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
29 smtp_check(qr/^220 /, "greeting"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
30 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
31 smtp_send('EHLO example.com'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
32 smtp_check(qr/^250 /, "ehlo"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
33 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
34 smtp_send('AUTH PLAIN ' . encode_base64("test\@example.com\0\0bad", '')); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
35 smtp_check(qr/^5.. /, 'auth plain with bad password'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
36 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
37 smtp_send('AUTH PLAIN ' . encode_base64("test\@example.com\0\0secret", '')); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
38 smtp_ok('auth plain'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
39 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
40 # We are talking to backend from this point |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
41 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
42 smtp_send('MAIL FROM:<test@example.com> SIZE=100'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
43 smtp_ok('mail from after auth'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
44 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
45 smtp_send('RSET'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
46 smtp_ok('rset'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
47 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
48 smtp_send('MAIL FROM:<test@xn--e1afmkfd.xn--80akhbyknj4f> SIZE=100'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
49 smtp_ok("idn mail from (example.test in russian)"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
50 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
51 smtp_send('QUIT'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
52 smtp_ok("quit"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
53 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
54 # Try auth plain with pipelining |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
55 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 $s = smtp_connect(); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
57 smtp_check(qr/^220 /, "greeting"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
58 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
59 smtp_send('EHLO example.com'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
60 smtp_check(qr/^250 /, "ehlo"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
61 |
2
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
62 smtp_send('INVALID COMMAND WITH ARGUMENTS' . CRLF |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
63 . 'RSET'); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
64 smtp_read(); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
65 smtp_ok('pipelined rset after invalid command'); |
1
c731d50dd6b1
Tests: check pipelining after invalid command.
Maxim Dounin <mdounin@mdounin.ru>
parents:
0
diff
changeset
|
66 |
2
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
67 smtp_send('AUTH PLAIN ' |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
68 . encode_base64("test\@example.com\0\0bad", '') . CRLF |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
69 . 'MAIL FROM:<test@example.com> SIZE=100'); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
70 smtp_read(); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
71 smtp_ok('mail from after failed pipelined auth'); |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
72 |
2
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
73 smtp_send('AUTH PLAIN ' |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
74 . encode_base64("test\@example.com\0\0secret", '') . CRLF |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
75 . 'MAIL FROM:<test@example.com> SIZE=100'); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
76 smtp_read(); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
77 smtp_ok('mail from after pipelined auth'); |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
78 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
79 # Try auth none |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
80 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
81 $s = smtp_connect(); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
82 smtp_check(qr/^220 /, "greeting"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
83 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
84 smtp_send('EHLO example.com'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
85 smtp_check(qr/^250 /, "ehlo"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
86 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
87 smtp_send('MAIL FROM:<test@example.com> SIZE=100'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
88 smtp_ok('auth none - mail from'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
89 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
90 smtp_send('RCPT TO:<test@example.com>'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
91 smtp_ok('auth none - rcpt to'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
92 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
93 smtp_send('RSET'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
94 smtp_ok('auth none - rset, should go to backend'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
95 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
96 # Auth none with pipelining |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
97 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
98 $s = smtp_connect(); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
99 smtp_check(qr/^220 /, "greeting"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
100 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
101 smtp_send('EHLO example.com'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
102 smtp_check(qr/^250 /, "ehlo"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
103 |
2
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
104 smtp_send('MAIL FROM:<test@example.com> SIZE=100' . CRLF |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
105 . 'RCPT TO:<test@example.com>' . CRLF |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
106 . 'RSET'); |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
107 |
2
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
108 smtp_ok('pipelined mail from'); |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
109 |
2
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
110 smtp_ok('pipelined rcpt to'); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
111 smtp_ok('pipelined rset'); |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
112 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
113 # Connection must stay even if error returned to rcpt to command |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
114 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
115 $s = smtp_connect(); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
116 smtp_read(); # skip greeting |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
117 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
118 smtp_send('EHLO example.com'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
119 smtp_read(); # skip ehlo reply |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
120 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
121 smtp_send('MAIL FROM:<test@example.com> SIZE=100'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
122 smtp_read(); # skip mail from reply |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
123 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
124 smtp_send('RCPT TO:<example.com>'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
125 smtp_check(qr/^5.. /, "bad rcpt to"); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
126 |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
127 smtp_send('RCPT TO:<test@example.com>'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
128 smtp_ok('good rcpt to'); |
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
129 |
2
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
130 # Make sure command splitted into many packets processed correctly |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
131 |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
132 $s = smtp_connect(); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
133 smtp_read(); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
134 |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
135 log_out('HEL'); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
136 $s->print('HEL'); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
137 smtp_send('O example.com'); |
33cb557f69d4
Tests: smtp pipelining is here, remove todo flags.
Maxim Dounin <mdounin@mdounin.ru>
parents:
1
diff
changeset
|
138 smtp_ok('splitted command'); |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
139 |
3
ce002b2323d3
Tests: test for smtp_greeting_delay.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2
diff
changeset
|
140 # With smtp_greeting_delay session expected to be closed after first error |
ce002b2323d3
Tests: test for smtp_greeting_delay.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2
diff
changeset
|
141 # message if client sent something before greeting. Use 10026 port |
ce002b2323d3
Tests: test for smtp_greeting_delay.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2
diff
changeset
|
142 # configured with smtp_greeting_delay 0.1s to check this. |
ce002b2323d3
Tests: test for smtp_greeting_delay.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2
diff
changeset
|
143 |
ce002b2323d3
Tests: test for smtp_greeting_delay.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2
diff
changeset
|
144 $s = smtp_connect(PeerPort => 10026); |
ce002b2323d3
Tests: test for smtp_greeting_delay.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2
diff
changeset
|
145 smtp_send('HELO example.com'); |
ce002b2323d3
Tests: test for smtp_greeting_delay.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2
diff
changeset
|
146 smtp_check(qr/^5.. /, "command before greeting - session must be rejected"); |
ce002b2323d3
Tests: test for smtp_greeting_delay.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2
diff
changeset
|
147 ok($s->eof(), "session have to be closed"); |
ce002b2323d3
Tests: test for smtp_greeting_delay.
Maxim Dounin <mdounin@mdounin.ru>
parents:
2
diff
changeset
|
148 |
0
de28d9f761be
Tests for nginx. Initial smtp testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
149 ############################################################################### |