about summary refs log tree commit homepage
path: root/xt/lei-auth-fail.t
diff options
context:
space:
mode:
Diffstat (limited to 'xt/lei-auth-fail.t')
-rw-r--r--xt/lei-auth-fail.t24
1 files changed, 24 insertions, 0 deletions
diff --git a/xt/lei-auth-fail.t b/xt/lei-auth-fail.t
new file mode 100644
index 00000000..1ccc2ab2
--- /dev/null
+++ b/xt/lei-auth-fail.t
@@ -0,0 +1,24 @@
+#!perl -w
+# Copyright (C) all contributors <meta@public-inbox.org>
+# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
+use v5.12;
+use PublicInbox::TestCommon;
+require_mods(qw(Mail::IMAPClient lei));
+
+# TODO: mock IMAP server which fails at authentication so we don't
+# have to make external connections to test this:
+my $imap_fail = $ENV{TEST_LEI_IMAP_FAIL_URL} //
+        'imaps://AzureDiamond:Hunter2@public-inbox.org:994/INBOX';
+my ($ro_home, $cfg_path) = setup_public_inboxes;
+test_lei(sub {
+        for my $pfx ([qw(q z:0.. --only), "$ro_home/t1", '-o'],
+                        [qw(convert -o mboxrd:/dev/stdout)],
+                        [qw(convert t/utf8.eml -o), $imap_fail],
+                        ['import'], [qw(tag +L:inbox)]) {
+                ok(!lei(@$pfx, $imap_fail), "IMAP auth failure on @$pfx");
+                like($lei_err, qr!\bE:.*?imaps?://.*?!sm, 'error shown');
+                unlike($lei_err, qr!Hunter2!s, 'password not shown');
+                is($lei_out, '', 'nothing output');
+        }
+});
+done_testing;