#!perl -w
# Copyright (C) 2021 all contributors
# License: AGPL-3.0+
# unit test for "lei lcat" internals, see t/lei-lcat.t for functional test
use strict;
use v5.10.1;
use Test::More;
use_ok 'PublicInbox::LeiLcat';
my $cb = \&PublicInbox::LeiLcat::extract_1;
my $ck = sub {
my ($txt, $exp, $t) = @_;
my $lei = {};
is($cb->($lei, $txt), $exp, $txt);
($t ? is_deeply($lei, { mset_opt => { threads => 1 } }, "-t $exp")
: is_deeply($lei, {}, "no -t for $exp")) or diag explain($lei);
};
for my $txt (qw(https://example.com/inbox/foo@bar/
https://example.com/inbox/foo@bar
https://example.com/inbox/foo@bar/raw
id:foo@bar
mid:foo@bar
)) {
$ck->($txt, 'mid:foo@bar');
}
for my $txt (qw(https://example.com/inbox/foo@bar/T/
https://example.com/inbox/foo@bar/t/
https://example.com/inbox/foo@bar/t.mbox.gz
)) {
$ck->($txt, 'mid:foo@bar', '-t');
}
$ck->('https://example.com/x/foobar/T/', 'mid:foobar', '-t');
$ck->('https://example.com/x/foobar/raw', 'mid:foobar');
is($cb->(my $lei = {}, 'asdf'), undef, 'no Message-ID');
is($cb->($lei = {}, 'm:x'), 'm:x', 'bare m: accepted');
done_testing;