From 3fc59df0d633a17e0c5e43d633d12e8772c06ec3 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 10 Jan 2017 21:40:37 +0000 Subject: introduce PublicInbox::MIME wrapper class This should fix problems with multipart messages where text/plain parts lack a header. cf. git clone --mirror https://github.com/rjbs/Email-MIME.git refs/pull/28/head In the future, we may still introduce as streaming interface to reduce memory usage on large emails. --- t/import.t | 6 +++--- t/mime.t | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 t/mime.t (limited to 't') diff --git a/t/import.t b/t/import.t index 73f92adb..29d00b05 100644 --- a/t/import.t +++ b/t/import.t @@ -3,7 +3,7 @@ use strict; use warnings; use Test::More; -use Email::MIME; +use PublicInbox::MIME; use PublicInbox::Git; use PublicInbox::Import; use File::Temp qw/tempdir/; @@ -13,7 +13,7 @@ is(system(qw(git init -q --bare), $dir), 0, 'git init successful'); my $git = PublicInbox::Git->new($dir); my $im = PublicInbox::Import->new($git, 'testbox', 'test@example'); -my $mime = Email::MIME->create( +my $mime = PublicInbox::MIME->create( header => [ From => 'a@example.com', To => 'b@example.com', @@ -50,7 +50,7 @@ $im->done; is(scalar @revs, 26, '26 revisions exist after mass import'); my ($mark, $msg) = $im->remove($mime); like($mark, qr/\A:\d+\z/, 'got mark'); -is(ref($msg), 'Email::MIME', 'got old message deleted'); +is(ref($msg), 'PublicInbox::MIME', 'got old message deleted'); is(undef, $im->remove($mime), 'remove is idempotent'); diff --git a/t/mime.t b/t/mime.t new file mode 100644 index 00000000..cd3303d1 --- /dev/null +++ b/t/mime.t @@ -0,0 +1,57 @@ +# Copyright (C) 2017 all contributors +# This library is free software; you can redistribute it and/or modify +# it under the same terms as Perl itself. +# Artistic or GPL-1+ +use strict; +use warnings; +use Test::More; +use_ok 'PublicInbox::MIME'; + +my $msg = PublicInbox::MIME->new( +'From: Richard Hansen +To: git@vger.kernel.org +Cc: Richard Hansen +Subject: [PATCH 0/2] minor diff orderfile documentation improvements +Date: Mon, 9 Jan 2017 19:40:29 -0500 +Message-Id: <20170110004031.57985-1-hansenr@google.com> +X-Mailer: git-send-email 2.11.0.390.gc69c2f50cf-goog +Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; + boundary="94eb2c0bc864b76ba30545b2bca9" + +--94eb2c0bc864b76ba30545b2bca9 + +Richard Hansen (2): + diff: document behavior of relative diff.orderFile + diff: document the pattern format for diff.orderFile + + Documentation/diff-config.txt | 5 ++++- + Documentation/diff-options.txt | 3 ++- + 2 files changed, 6 insertions(+), 2 deletions(-) + + +--94eb2c0bc864b76ba30545b2bca9 +Content-Type: application/pkcs7-signature; name="smime.p7s" +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="smime.p7s" +Content-Description: (truncated) S/MIME Cryptographic Signature + +dkTlB69771K2eXK4LcHSH/2LqX+VYa3K44vrx1ruzjXdNWzIpKBy0weFNiwnJCGofvCysM2RCSI1 +--94eb2c0bc864b76ba30545b2bca9-- + +'); + +my @parts = $msg->parts; +my $exp = 'Richard Hansen (2): + diff: document behavior of relative diff.orderFile + diff: document the pattern format for diff.orderFile + + Documentation/diff-config.txt | 5 ++++- + Documentation/diff-options.txt | 3 ++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +'; + +ok($msg->isa('Email::MIME'), 'compatible with Email::MIME'); +is($parts[0]->body, $exp, 'body matches expected'); + +done_testing(); -- cgit v1.2.3-24-ge0c7