use v6.d;
use Test;
use MaildirIndexer::Parser;
use MaildirIndexer::Email;
subtest 'from string' => {
ok !parse-email(''), "empty string won't parse";
my $message = q:to<EOM>;
bad stuff
EOM
ok !parse-email($message), "bad message won't parse";
$message = q:to<EOM>;
Head: value
EOM
is-deeply( parse-email($message),
MaildirIndexer::Email.new(:headers(Head=>'value'),:body('')),
"minimal message should parse" );
$message = q:to<EOM>;
Head: value
continued
And: more
some body
on two lines
EOM
is-deeply( parse-email($message),
MaildirIndexer::Email.new(
:headers(%(
Head => 'value continued',
And => 'more',
)),
:body("some body\non two lines"),
),
"full message should parse" );
$message = q:to<EOM>;
Head: value
continued
crap crap crap
And: more
some body
on two lines
EOM
is-deeply( parse-email($message),
MaildirIndexer::Email.new(
:headers(%(
Head => 'value continued',
And => 'more',
)),
:body("some body\non two lines"),
),
"message wtih junk between headers should parse" );
}
done-testing;