diff smtp-greeting-delay.t @ 17:7e28c64edf55

Tests: reorganize smtp tests (no real changes). Move smtp_greeting_delay tests into separate test file. Embed config into tests.
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 13 Sep 2008 03:37:45 +0400
parents
children 0880e0fafde4
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/smtp-greeting-delay.t
@@ -0,0 +1,59 @@
+#!/usr/bin/perl
+
+# (C) Maxim Dounin
+
+###############################################################################
+
+use warnings;
+use strict;
+
+use Test::More tests => 2;
+
+use MIME::Base64;
+use Socket qw/ CRLF /;
+
+BEGIN { use FindBin; chdir($FindBin::Bin); }
+
+use lib 'lib';
+use Test::Nginx;
+use Test::Nginx::SMTP;
+
+###############################################################################
+
+select STDERR; $| = 1;
+select STDOUT; $| = 1;
+
+my $t = Test::Nginx->new()->write_file_expand('nginx.conf', <<'EOF')->run();
+
+master_process off;
+daemon         off;
+
+events {
+    worker_connections  1024;
+}
+
+mail {
+    proxy_pass_error_message  on;
+    auth_http  http://localhost:8080/mail/auth;
+    xclient    off;
+
+    server {
+        listen     localhost:10025;
+        protocol   smtp;
+        smtp_greeting_delay  100ms;
+    }
+}
+
+EOF
+
+###############################################################################
+
+# With smtp_greeting_delay session expected to be closed after first error
+# message if client sent something before greeting.
+
+my $s = Test::Nginx::SMTP->new();
+$s->send('HELO example.com');
+$s->check(qr/^5.. /, "command before greeting - session must be rejected");
+ok($s->eof(), "session have to be closed");
+
+###############################################################################