+ my $mset = $ro->query('t:list@example.com', {mset => 1});
+ is($mset->size, 6, 'searched To: successfully');
+ foreach my $m ($mset->items) {
+ my $smsg = $ro->{over_ro}->get_art($m->get_docid);
+ like($smsg->to, qr/\blist\@example\.com\b/, 'to appears');
+ }
+
+ $mset = $ro->query('tc:list@example.com', {mset => 1});
+ is($mset->size, 6, 'searched To+Cc: successfully');
+ foreach my $m ($mset->items) {
+ my $smsg = $ro->{over_ro}->get_art($m->get_docid);
+ my $tocc = join("\n", $smsg->to, $smsg->cc);
+ like($tocc, qr/\blist\@example\.com\b/, 'tocc appears');
+ }
+
+ foreach my $pfx ('tcf:', 'c:') {
+ my $mset = $ro->query($pfx . 'foo@example.com', { mset => 1 });
+ is($mset->items, 1, "searched $pfx successfully for Cc:");
+ foreach my $m ($mset->items) {
+ my $smsg = $ro->{over_ro}->get_art($m->get_docid);
+ like($smsg->cc, qr/\bfoo\@example\.com\b/,
+ 'cc appears');
+ }
+ }
+
+ foreach my $pfx ('', 'tcf:', 'f:') {
+ my $res = $ro->query($pfx . 'Laggy');
+ is(scalar(@$res), 1,
+ "searched $pfx successfully for From:");
+ foreach my $smsg (@$res) {
+ like($smsg->from_name, qr/Laggy Sender/,
+ "From appears with $pfx");
+ }
+ }
+}
+
+{
+ $rw_commit->();
+ $ro->reopen;
+ my $res = $ro->query('b:hello');
+ is(scalar(@$res), 0, 'no match on body search only');
+ $res = $ro->query('bs:smith');
+ is(scalar(@$res), 0,
+ 'no match on body+subject search for From');
+
+ $res = $ro->query('q:theatre');
+ is(scalar(@$res), 1, 'only one quoted body');
+ like($res->[0]->from_name, qr/\AQuoter/,
+ 'got quoted body') if (scalar(@$res));
+
+ $res = $ro->query('nq:theatre');
+ is(scalar @$res, 1, 'only one non-quoted body');
+ like($res->[0]->from_name, qr/\ANon-Quoter/,
+ 'got non-quoted body') if (scalar(@$res));
+
+ foreach my $pfx (qw(b: bs:)) {
+ $res = $ro->query($pfx . 'theatre');
+ is(scalar @$res, 2, "searched both bodies for $pfx");
+ like($res->[0]->from_name, qr/\ANon-Quoter/,
+ "non-quoter first for $pfx") if scalar(@$res);
+ }
+}
+
+$ibx->with_umask(sub {
+ 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(