annotate smtp-greeting-delay.t @ 114:44b281ac4bc6

Tests: add server name tests, including fancy regex ones. With test config nginx will fail to start as of 0.8.28 due to incorrect conversion of regular expressions to lowercase. Patch was discussed on mailing list and will be included in next release.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 30 Nov 2009 14:47:17 +0300
parents 1c0ec30614c6
children 8ac1faaddd2c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 ###############################################################################
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 use warnings;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8 use strict;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9
27
fb94a224fef2 Tests: add has() functions for feature testing.
Maxim Dounin <mdounin@mdounin.ru>
parents: 26
diff changeset
10 use Test::More;
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 BEGIN { use FindBin; chdir($FindBin::Bin); }
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 use lib 'lib';
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15 use Test::Nginx;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use Test::Nginx::SMTP;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18 ###############################################################################
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20 select STDERR; $| = 1;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDOUT; $| = 1;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22
28
8f1519472ece Tests: unbreak and extend has() functionality.
Maxim Dounin <mdounin@mdounin.ru>
parents: 27
diff changeset
23 my $t = Test::Nginx->new()->has('mail')->plan(2)
27
fb94a224fef2 Tests: add has() functions for feature testing.
Maxim Dounin <mdounin@mdounin.ru>
parents: 26
diff changeset
24 ->write_file_expand('nginx.conf', <<'EOF')->run();
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25
107
1c0ec30614c6 Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents: 66
diff changeset
26 %%TEST_GLOBALS%%
1c0ec30614c6 Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents: 66
diff changeset
27
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28 master_process off;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 daemon off;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 events {
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 }
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 mail {
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 proxy_pass_error_message on;
45
d68b85def521 Tests: use 127.0.0.1 instead of localhost.
Maxim Dounin <mdounin@mdounin.ru>
parents: 36
diff changeset
36 auth_http http://127.0.0.1:8080/mail/auth;
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 xclient off;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 server {
45
d68b85def521 Tests: use 127.0.0.1 instead of localhost.
Maxim Dounin <mdounin@mdounin.ru>
parents: 36
diff changeset
40 listen 127.0.0.1:8025;
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 protocol smtp;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 smtp_greeting_delay 100ms;
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 }
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 }
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45
66
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
46 http {
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
47 # stub to avoid SIGSEGV when perl module compiled in, <= 0.7.30
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
48 }
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
49
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 EOF
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 ###############################################################################
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 # With smtp_greeting_delay session expected to be closed after first error
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 # message if client sent something before greeting.
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 my $s = Test::Nginx::SMTP->new();
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 $s->send('HELO example.com');
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 $s->check(qr/^5.. /, "command before greeting - session must be rejected");
66
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
60
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
61 TODO: {
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
62 local $TODO = 'not in official nginx yet';
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
63
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 ok($s->eof(), "session have to be closed");
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65
66
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
66 }
b4f1e64882b7 Tests: cleanup smtp-greeting-delay test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
67
17
7e28c64edf55 Tests: reorganize smtp tests (no real changes).
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 ###############################################################################