summaryrefslogtreecommitdiff
path: root/t/parser.t
diff options
context:
space:
mode:
Diffstat (limited to 't/parser.t')
-rw-r--r--t/parser.t61
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;