1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| | #!perl -w
# Copyright (C) 2021 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
# 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
<foo@bar>
<https://example.com/inbox/foo@bar>
<https://example.com/inbox/foo@bar/raw>
<https://example.com/inbox/foo@bar/>
<nntp://example.com/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
<https://example.com/inbox/foo@bar/t.atom>
<https://example.com/inbox/foo@bar/t/>)) {
$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;
|