X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fsearch.t;h=c9c4e3464ce1a1a83ca8d4af1518b0dbb57faeb5;hb=f74b64dbe75226b996367a6049ebd00a3e39ba49;hp=bddb545a59b0a682ffb5f40c59cd46cb8811f708;hpb=a9c903a57ff9a18c56a53bcba4316eade423fef6;p=public-inbox.git diff --git a/t/search.t b/t/search.t index bddb545a..c9c4e346 100644 --- a/t/search.t +++ b/t/search.t @@ -15,23 +15,6 @@ is(0, system(qw(git init -q --bare), $git_dir), "git init (main)"); eval { PublicInbox::Search->new($git_dir) }; ok($@, "exception raised on non-existent DB"); -{ - my $orig = "FOO " x 30; - my $summ = PublicInbox::Search::subject_summary($orig); - - $summ = length($summ); - $orig = length($orig); - ok($summ < $orig && $summ > 0, "summary shortened ($orig => $summ)"); - - $orig = "FOO" x 30; - $summ = PublicInbox::Search::subject_summary($orig); - - $summ = length($summ); - $orig = length($orig); - ok($summ < $orig && $summ > 0, - "summary shortened but not empty: $summ"); -} - my $rw = PublicInbox::SearchIdx->new($git_dir, 1); $rw->_xdb_acquire; $rw->_xdb_release; @@ -109,7 +92,6 @@ sub filter_mids { my $found = $ro->lookup_message(''); ok($found, "message found"); is($root_id, $found->{doc_id}, 'doc_id set correctly'); - $found->ensure_metadata; is($found->mid, 'root@s', 'mid set correctly'); ok(int($found->thread_id) > 0, 'thread_id is an integer'); @@ -290,10 +272,9 @@ sub filter_mids { body => "LOOP!\n")); ok($doc_id > 0, "doc_id defined with circular reference"); my $smsg = $rw->lookup_message('circle@a'); - $smsg->ensure_metadata; is($smsg->references, '', "no references created"); my $msg = PublicInbox::SearchMsg->load_doc($smsg->{doc}); - is($s, $msg->mini_mime->header('Subject'), 'long subject not rewritten'); + is($s, $msg->subject, 'long subject not rewritten'); } { @@ -310,10 +291,7 @@ sub filter_mids { my $smsg = $rw->lookup_message('testmessage@example.com'); my $msg = PublicInbox::SearchMsg->load_doc($smsg->{doc}); - # mini_mime technically not valid (I think), - # but good enough for displaying HTML: - is($mime->header('Subject'), $msg->mini_mime->header('Subject'), - 'UTF-8 subject preserved'); + is($mime->header('Subject'), $msg->subject, 'UTF-8 subject preserved'); } { @@ -386,6 +364,50 @@ sub filter_mids { } } +{ + my $part1 = Email::MIME->create( + attributes => { + content_type => 'text/plain', + disposition => 'attachment', + charset => 'US-ASCII', + encoding => 'quoted-printable', + filename => 'attached_fart.txt', + }, + body_str => 'inside the attachment', + ); + my $part2 = Email::MIME->create( + attributes => { + content_type => 'text/plain', + disposition => 'attachment', + charset => 'US-ASCII', + encoding => 'quoted-printable', + filename => 'part_deux.txt', + }, + body_str => 'inside another', + ); + my $amsg = Email::MIME->create( + header_str => [ + Subject => 'see attachment', + 'Message-ID' => '', + From => 'John Smith ', + To => 'list@example.com', + ], + parts => [ $part1, $part2 ], + ); + ok($rw->add_message($amsg), 'added attachment'); + $rw_commit->(); + $ro->reopen; + my $n = $ro->query('n:attached_fart.txt'); + is(scalar @{$n->{msgs}}, 1, 'got result for n:'); + my $res = $ro->query('part_deux.txt'); + is(scalar @{$res->{msgs}}, 1, 'got result without n:'); + is($n->{msgs}->[0]->mid, $res->{msgs}->[0]->mid, + 'same result with and without'); + my $txt = $ro->query('"inside another"'); + is($txt->{msgs}->[0]->mid, $res->{msgs}->[0]->mid, + 'search inside text attachments works'); +} + done_testing(); 1;