diff options
author | Eric Wong <e@80x24.org> | 2017-02-09 00:43:02 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2017-02-09 00:43:02 +0000 |
commit | fb9ed5324ec7de9420956840ba9a6585b81e8231 (patch) | |
tree | ab6b34f8459a585205a25d1f3d18d31437b89052 /t | |
parent | 1ab8dabe04ebba61fd8761dca3d569947cbe20be (diff) | |
parent | ba4c50c20b95679580beba1ef290a4281d5285b7 (diff) | |
download | public-inbox-fb9ed5324ec7de9420956840ba9a6585b81e8231.tar.gz |
* origin/master: config: do not slurp lines into memory TODO: several updates search: schema version bump for empty References/In-Reply-To Revert "searchidx: reindex clobbers old thread IDs" searchidx: reindex clobbers old thread IDs searchidx: deal with empty In-Reply-To and References headers searchview: increase limit for displaying search results searchview: clarify numeric summary at bottom add filter for Subject: tags watchmaildir: allow arguments for filters watchmaildir: limit live importer processes learn: implement "rm" only functionality mime: avoid SUPER usage in Email::MIME subclass inbox: reinstate periodic cleanup of Xapian and SQLite objects introduce PublicInbox::MIME wrapper class
Diffstat (limited to 't')
-rw-r--r-- | t/filter_subjecttag.t | 27 | ||||
-rw-r--r-- | t/import.t | 6 | ||||
-rw-r--r-- | t/mime.t | 117 |
3 files changed, 147 insertions, 3 deletions
diff --git a/t/filter_subjecttag.t b/t/filter_subjecttag.t new file mode 100644 index 00000000..54a219e7 --- /dev/null +++ b/t/filter_subjecttag.t @@ -0,0 +1,27 @@ +# Copyright (C) 2017 all contributors <meta@public-inbox.org> +# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> +use strict; +use warnings; +use Test::More; +use Email::MIME; +use_ok 'PublicInbox::Filter::SubjectTag'; + +my $f = eval { PublicInbox::Filter::SubjectTag->new }; +like($@, qr/tag not defined/, 'error without args'); +$f = PublicInbox::Filter::SubjectTag->new('-tag', '[foo]'); +is(ref $f, 'PublicInbox::Filter::SubjectTag', 'new object created'); + +my $mime = Email::MIME->new(<<EOF); +To: you <you\@example.com> +Subject: =?UTF-8?B?UmU6IFtmb29dIEVsw4PCqWFub3I=?= + +EOF + +$mime = $f->delivery($mime); +is($mime->header('Subject'), "Re: El\xc3\xa9anor", 'filtered with Re:'); + +$mime->header_str_set('Subject', '[FOO] bar'); +$mime = $f->delivery($mime); +is($mime->header('Subject'), 'bar', 'filtered non-reply'); + +done_testing(); @@ -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..c4bdcf0d --- /dev/null +++ b/t/mime.t @@ -0,0 +1,117 @@ +# Copyright (C) 2017 all contributors <meta@public-inbox.org> +# This library is free software; you can redistribute it and/or modify +# it under the same terms as Perl itself. +# Artistic or GPL-1+ <https://www.gnu.org/licenses/gpl-1.0.txt> +use strict; +use warnings; +use Test::More; +use_ok 'PublicInbox::MIME'; +use PublicInbox::MsgIter; + +my $msg = PublicInbox::MIME->new( +'From: Richard Hansen <hansenr@google.com> +To: git@vger.kernel.org +Cc: Richard Hansen <hansenr@google.com> +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'); + + +my $raw = q^Date: Wed, 18 Jan 2017 13:28:32 -0500 +From: Santiago Torres <santiago@nyu.edu> +To: Junio C Hamano <gitster@pobox.com> +Cc: git@vger.kernel.org, peff@peff.net, sunshine@sunshineco.com, + walters@verbum.org, Lukas Puehringer <luk.puehringer@gmail.com> +Subject: Re: [PATCH v6 4/6] builtin/tag: add --format argument for tag -v +Message-ID: <20170118182831.pkhqu2np3bh2puei@LykOS.localdomain> +References: <20170117233723.23897-1-santiago@nyu.edu> + <20170117233723.23897-5-santiago@nyu.edu> + <xmqqmvepb4oj.fsf@gitster.mtv.corp.google.com> + <xmqqh94wb4y0.fsf@gitster.mtv.corp.google.com> +MIME-Version: 1.0 +Content-Type: multipart/signed; micalg=pgp-sha256; + protocol="application/pgp-signature"; boundary="r24xguofrazenjwe" +Content-Disposition: inline +In-Reply-To: <xmqqh94wb4y0.fsf@gitster.mtv.corp.google.com> + + +--r24xguofrazenjwe +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +your tree directly?=20 + +--r24xguofrazenjwe +Content-Type: application/pgp-signature; name="signature.asc" + +-----BEGIN PGP SIGNATURE----- + +=7wIb +-----END PGP SIGNATURE----- + +--r24xguofrazenjwe-- + +^; + +$msg = PublicInbox::MIME->new($raw); +my $nr = 0; +msg_iter($msg, sub { + my ($part, $level, @ex) = @{$_[0]}; + if ($ex[0] == 1) { + is($part->body_str, "your tree directly? \r\n", 'body OK'); + } elsif ($ex[0] == 2) { + is($part->body, "-----BEGIN PGP SIGNATURE-----\n\n" . + "=7wIb\n" . + "-----END PGP SIGNATURE-----\n", + 'sig "matches"'); + } else { + fail "unexpected part\n"; + } + $nr++; +}); + +is($nr, 2, 'got 2 parts'); +is($msg->as_string, $raw, + 'stringified sufficiently close to original'); + +done_testing(); |