summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2018-11-16 13:00:43 +0000
committerdakkar <dakkar@thenautilus.net>2018-11-16 13:00:43 +0000
commitac1efa827c1fe4c166a44f0414a47b3788ea5017 (patch)
treeda920389957707c871545d8ea8ca6365bae47d92
parenttest the parser (diff)
downloadMaildirIndexer-ac1efa827c1fe4c166a44f0414a47b3788ea5017.tar.gz
MaildirIndexer-ac1efa827c1fe4c166a44f0414a47b3788ea5017.tar.bz2
MaildirIndexer-ac1efa827c1fe4c166a44f0414a47b3788ea5017.zip
test email
-rw-r--r--lib/MaildirIndexer/Email.pm62
-rw-r--r--t/email.t44
2 files changed, 45 insertions, 1 deletions
diff --git a/lib/MaildirIndexer/Email.pm6 b/lib/MaildirIndexer/Email.pm6
index e5454e1..993d8b1 100644
--- a/lib/MaildirIndexer/Email.pm6
+++ b/lib/MaildirIndexer/Email.pm6
@@ -6,7 +6,7 @@ has $!body;
method BUILD(:%!headers,:$!body) { }
-method message-id { split-refs(%!headers<message-id>)[0] }
+method message-id { split-refs(%!headers<message-id>)[0] // '' }
method refs {
return (
|split-refs(%!headers<in-reply-to>),
diff --git a/t/email.t b/t/email.t
new file mode 100644
index 0000000..f2208a6
--- /dev/null
+++ b/t/email.t
@@ -0,0 +1,44 @@
+#!perl6
+use v6.d.PREVIEW;
+use Test;
+use MaildirIndexer::Email;
+
+subtest 'no values' => {
+ my $email = MaildirIndexer::Email.new(
+ headers => %(),
+ body => '',
+ );
+
+ is-deeply $email.message-id, '', 'message id should parse';
+ is-deeply $email.refs, qw[], 'refs should parse';
+}
+
+subtest 'bad values' => {
+ my $email = MaildirIndexer::Email.new(
+ headers => %(
+ message-id => 'some stuff here',
+ in-reply-to => 'none',
+ references => 'bad garbage',
+ ),
+ body => '',
+ );
+
+ is-deeply $email.message-id, '', 'message id should parse';
+ is-deeply $email.refs, qw[], 'refs should parse';
+}
+
+subtest 'all values' => {
+ my $email = MaildirIndexer::Email.new(
+ headers => %(
+ message-id => 'some <stuff> here',
+ in-reply-to => '<one>',
+ references => 'bad <two> garbage <three>',
+ ),
+ body => '',
+ );
+
+ is-deeply $email.message-id, 'stuff', 'message id should parse';
+ is-deeply $email.refs, qw[one three two], 'refs should parse';
+}
+
+done-testing;