diff options
Diffstat (limited to 't/parser.t')
-rw-r--r-- | t/parser.t | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/t/parser.t b/t/parser.t new file mode 100644 index 0000000..aafbb27 --- /dev/null +++ b/t/parser.t @@ -0,0 +1,61 @@ +#!perl6 +use v6.d.PREVIEW; +use Test; +use MaildirIndexer::Parser; +use MaildirIndexer::Email; + +subtest 'from string' => { + is-deeply parse-email(''), Nil, "empty string won't parse"; + + my $message = q:to<EOM>; + bad stuff + EOM + is-deeply parse-email($message), Nil, "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; |