about summary refs log tree commit homepage
path: root/t
diff options
context:
space:
mode:
authorEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-04-06 21:44:38 +0000
committerEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-04-06 21:45:03 +0000
commitfad9acd35e56a289ade90a62d056b2a6663d448c (patch)
tree74d3203af13690a521d4de54ca2733223e2c389e /t
parent8f2999546c9447ce2aed48ba4d1192e0058e28a2 (diff)
downloadpublic-inbox-fad9acd35e56a289ade90a62d056b2a6663d448c.tar.gz
Favor simpler internal APIs this time around, this cuts
a fair amount of code out and takes another step towards
removing Xapian as a dependency for v2 repos.
Diffstat (limited to 't')
-rw-r--r--t/psgi_v2.t1
-rw-r--r--t/search.t16
-rw-r--r--t/v2writable.t18
3 files changed, 15 insertions, 20 deletions
diff --git a/t/psgi_v2.t b/t/psgi_v2.t
index bdf23deb..faa139fb 100644
--- a/t/psgi_v2.t
+++ b/t/psgi_v2.t
@@ -129,6 +129,7 @@ test_psgi(sub { $www->call(@_) }, sub {
                 is(scalar(@from_), 3, 'three From_ lines in t.mbox.gz');
 
                 # search interface
+                $config->each_inbox(sub { $_[0]->search->reopen });
                 $res = $cb->(POST('/v2test/?q=m:a-mid@b&x=m'));
                 $in = $res->content;
                 $status = IO::Uncompress::Gunzip::gunzip(\$in => \$out);
diff --git a/t/search.t b/t/search.t
index 2f7b795e..fda32d36 100644
--- a/t/search.t
+++ b/t/search.t
@@ -89,10 +89,9 @@ sub filter_mids {
 {
         $rw_commit->();
         $ro->reopen;
-        my $found = $ro->first_smsg_by_mid('root@s');
-        ok($found, "message found");
-        is($root_id, $found->{doc_id}, 'doc_id set correctly');
-        is($found->mid, 'root@s', 'mid set correctly');
+        my $found = $ro->query('m:root@s');
+        is(scalar(@$found), 1, "message found");
+        is($found->[0]->mid, 'root@s', 'mid set correctly');
 
         my ($res, @res);
         my @exp = sort qw(root@s last@s);
@@ -276,10 +275,9 @@ sub filter_mids {
                 ],
                 body => "LOOP!\n"));
         ok($doc_id > 0, "doc_id defined with circular reference");
-        my $smsg = $rw->first_smsg_by_mid('circle@a');
+        my $smsg = $rw->query('m:circle@a', {limit=>1})->[0];
         is($smsg->references, '', "no references created");
-        my $msg = PublicInbox::SearchMsg->load_doc($smsg->{doc});
-        is($s, $msg->subject, 'long subject not rewritten');
+        is($s, $smsg->subject, 'long subject not rewritten');
 }
 
 {
@@ -293,9 +291,7 @@ sub filter_mids {
         my $mime = Email::MIME->new($str);
         my $doc_id = $rw->add_message($mime);
         ok($doc_id > 0, 'message indexed doc_id with UTF-8');
-        my $smsg = $rw->first_smsg_by_mid('testmessage@example.com');
-        my $msg = PublicInbox::SearchMsg->load_doc($smsg->{doc});
-
+        my $msg = $rw->query('m:testmessage@example.com', {limit => 1})->[0];
         is($mime->header('Subject'), $msg->subject, 'UTF-8 subject preserved');
 }
 
diff --git a/t/v2writable.t b/t/v2writable.t
index ab85e9af..4a42c016 100644
--- a/t/v2writable.t
+++ b/t/v2writable.t
@@ -108,14 +108,13 @@ if ('ensure git configs are correct') {
         $mime->header_set('References', '<zz-mid@b>');
         ok($im->add($mime), 'message with multiple Message-ID');
         $im->done;
-        my @found;
         my $srch = $ibx->search;
-        $srch->reopen->each_smsg_by_mid('abcde@1', sub { push @found, @_; 1 });
-        is(scalar(@found), 1, 'message found by first MID');
-        $srch->reopen->each_smsg_by_mid('abcde@2', sub { push @found, @_; 1 });
-        is(scalar(@found), 2, 'message found by second MID');
-        is($found[0]->{doc_id}, $found[1]->{doc_id}, 'same document');
-        ok($found[1]->{doc_id} > 0, 'doc_id is positive');
+        my $mset1 = $srch->reopen->query('m:abcde@1', { mset => 1 });
+        is($mset1->size, 1, 'message found by first MID');
+        my $mset2 = $srch->reopen->query('m:abcde@2', { mset => 1 });
+        is($mset2->size, 1, 'message found by second MID');
+        is((($mset1->items)[0])->get_docid, (($mset2->items)[0])->get_docid,
+                'same document');
 }
 
 SKIP: {
@@ -224,9 +223,8 @@ EOF
         like($smsg->num, qr/\A\d+\z/, 'numeric number in return message');
         is($ibx->mm->mid_for($smsg->num), undef, 'no longer in Msgmap by num');
         my $srch = $ibx->search->reopen;
-        my @found = ();
-        $srch->each_smsg_by_mid($smsg->mid, sub { push @found, @_; 1 });
-        is(scalar(@found), 0, 'no longer found in Xapian');
+        my $mset = $srch->query('m:'.$smsg->mid, { mset => 1});
+        is($mset->size, 0, 'no longer found in Xapian');
         my @log1 = qw(log -1 --pretty=raw --raw -r --no-abbrev --no-renames);
         is($srch->{over_ro}->get_art($smsg->num), undef,
                 'removal propagated to Over DB');