Tests: reorganize smtp tests (no real changes).
Move smtp_greeting_delay tests into separate test file. Embed config into
tests.
diff --git a/smtp-greeting-delay.t b/smtp-greeting-delay.t
new file mode 100644
index 0000000..06181e5
--- /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");
+
+###############################################################################
diff --git a/smtp.conf b/smtp.conf
deleted file mode 100644
index 883d877..0000000
--- a/smtp.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-# Config for smtp.t tests.
-
-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_auth login plain none;
- }
-
- server {
- listen localhost:10026;
- protocol smtp;
- smtp_greeting_delay 100ms;
- }
-}
-
-http {
- access_log off;
-
- server {
- listen localhost:8080;
- server_name localhost;
-
- location = /mail/auth {
- set $reply ERROR;
-
- if ($http_auth_smtp_to ~ example.com) {
- set $reply OK;
- }
- if ($http_auth_pass ~ secret) {
- set $reply OK;
- }
-
- add_header Auth-Status $reply;
- add_header Auth-Server 127.0.0.1;
- add_header Auth-Port 25;
- add_header Auth-Wait 1;
- return 204;
- }
- }
-}
diff --git a/smtp.t b/smtp.t
index 9fd7b50..4e44cd8 100644
--- a/smtp.t
+++ b/smtp.t
@@ -9,7 +9,7 @@
use warnings;
use strict;
-use Test::More tests => 28;
+use Test::More tests => 26;
use MIME::Base64;
use Socket qw/ CRLF /;
@@ -25,7 +25,54 @@
select STDERR; $| = 1;
select STDOUT; $| = 1;
-my $t = Test::Nginx->new()->run('smtp.conf');
+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_auth login plain none;
+ }
+}
+
+http {
+ access_log off;
+
+ server {
+ listen localhost:8080;
+ server_name localhost;
+
+ location = /mail/auth {
+ set $reply ERROR;
+
+ if ($http_auth_smtp_to ~ example.com) {
+ set $reply OK;
+ }
+ if ($http_auth_pass ~ secret) {
+ set $reply OK;
+ }
+
+ add_header Auth-Status $reply;
+ add_header Auth-Server 127.0.0.1;
+ add_header Auth-Port 25;
+ add_header Auth-Wait 1;
+ return 204;
+ }
+ }
+}
+
+EOF
###############################################################################
@@ -141,13 +188,4 @@
$s->send('O example.com');
$s->ok('splitted command');
-# With smtp_greeting_delay session expected to be closed after first error
-# message if client sent something before greeting. Use 10026 port
-# configured with smtp_greeting_delay 0.1s to check this.
-
-$s = Test::Nginx::SMTP->new(PeerPort => 10026);
-$s->send('HELO example.com');
-$s->check(qr/^5.. /, "command before greeting - session must be rejected");
-ok($s->eof(), "session have to be closed");
-
###############################################################################