X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fsearch.t;h=51adb9fbc5829689a6ce28d2d1e59ee32ac57ded;hb=87425172fb480214c3f72e0174f4f8f15f48d92d;hp=a75dc9b57b6897af523f4fc2ec487cfac7b7aa38;hpb=7eeadcb62729b0efbcb53cd9b7b181897c92cf9a;p=public-inbox.git
diff --git a/t/search.t b/t/search.t
index a75dc9b5..51adb9fb 100644
--- a/t/search.t
+++ b/t/search.t
@@ -1,5 +1,5 @@
-# Copyright (C) 2015 all contributors
-# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
+# Copyright (C) 2015-2018 all contributors
+# License: AGPL-3.0+
use strict;
use warnings;
use Test::More;
@@ -18,36 +18,36 @@ ok($@, "exception raised on non-existent DB");
my $rw = PublicInbox::SearchIdx->new($git_dir, 1);
$rw->_xdb_acquire;
$rw->_xdb_release;
+my $ibx = $rw->{-inbox};
$rw = undef;
my $ro = PublicInbox::Search->new($git_dir);
my $rw_commit = sub {
- $rw->{xdb}->commit_transaction if $rw && $rw->{xdb};
+ $rw->commit_txn_lazy if $rw;
$rw = PublicInbox::SearchIdx->new($git_dir, 1);
- $rw->_xdb_acquire->begin_transaction;
+ $rw->begin_txn_lazy;
};
{
# git repository perms
- is(PublicInbox::SearchIdx->_git_config_perm(undef),
- &PublicInbox::SearchIdx::PERM_GROUP,
+ is($ibx->_git_config_perm(), &PublicInbox::InboxWritable::PERM_GROUP,
"undefined permission is group");
- is(PublicInbox::SearchIdx::_umask_for(
- PublicInbox::SearchIdx->_git_config_perm('0644')),
+ is(PublicInbox::InboxWritable::_umask_for(
+ PublicInbox::InboxWritable->_git_config_perm('0644')),
0022, "644 => umask(0022)");
- is(PublicInbox::SearchIdx::_umask_for(
- PublicInbox::SearchIdx->_git_config_perm('0600')),
+ is(PublicInbox::InboxWritable::_umask_for(
+ PublicInbox::InboxWritable->_git_config_perm('0600')),
0077, "600 => umask(0077)");
- is(PublicInbox::SearchIdx::_umask_for(
- PublicInbox::SearchIdx->_git_config_perm('0640')),
+ is(PublicInbox::InboxWritable::_umask_for(
+ PublicInbox::InboxWritable->_git_config_perm('0640')),
0027, "640 => umask(0027)");
- is(PublicInbox::SearchIdx::_umask_for(
- PublicInbox::SearchIdx->_git_config_perm('group')),
+ is(PublicInbox::InboxWritable::_umask_for(
+ PublicInbox::InboxWritable->_git_config_perm('group')),
0007, 'group => umask(0007)');
- is(PublicInbox::SearchIdx::_umask_for(
- PublicInbox::SearchIdx->_git_config_perm('everybody')),
+ is(PublicInbox::InboxWritable::_umask_for(
+ PublicInbox::InboxWritable->_git_config_perm('everybody')),
0002, 'everybody => umask(0002)');
- is(PublicInbox::SearchIdx::_umask_for(
- PublicInbox::SearchIdx->_git_config_perm('umask')),
+ is(PublicInbox::InboxWritable::_umask_for(
+ PublicInbox::InboxWritable->_git_config_perm('umask')),
umask, 'umask => existing umask');
}
@@ -89,11 +89,10 @@ sub filter_mids {
{
$rw_commit->();
$ro->reopen;
- my $found = $ro->lookup_message('');
+ 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');
- ok(int($found->thread_id) > 0, 'thread_id is an integer');
my ($res, @res);
my @exp = sort qw(root@s last@s);
@@ -148,7 +147,13 @@ sub filter_mids {
my $ghost_id = $rw->add_message($was_ghost);
is($ghost_id, int($ghost_id), "ghost_id is an integer: $ghost_id");
- ok($ghost_id < $reply_id, "ghost vivified from earlier message");
+ my $msgs = $rw->{over}->get_thread('ghost-message@s')->{msgs};
+ is(scalar(@$msgs), 2, 'got both messages in ghost thread');
+ foreach (qw(sid tid)) {
+ is($msgs->[0]->{$_}, $msgs->[1]->{$_}, "{$_} match");
+ }
+ isnt($msgs->[0]->{num}, $msgs->[1]->{num}, "num do not match");
+ ok($_->{num} > 0, 'positive art num') foreach @$msgs
}
# search thread on ghost
@@ -264,7 +269,7 @@ sub filter_mids {
],
body => "LOOP!\n"));
ok($doc_id > 0, "doc_id defined with circular reference");
- my $smsg = $rw->lookup_message('circle@a');
+ my $smsg = $rw->first_smsg_by_mid('circle@a');
is($smsg->references, '', "no references created");
my $msg = PublicInbox::SearchMsg->load_doc($smsg->{doc});
is($s, $msg->subject, 'long subject not rewritten');
@@ -281,7 +286,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->lookup_message('testmessage@example.com');
+ my $smsg = $rw->first_smsg_by_mid('testmessage@example.com');
my $msg = PublicInbox::SearchMsg->load_doc($smsg->{doc});
is($mime->header('Subject'), $msg->subject, 'UTF-8 subject preserved');
@@ -400,6 +405,7 @@ sub filter_mids {
is($txt->{msgs}->[0]->mid, $res->{msgs}->[0]->mid,
'search inside text attachments works');
}
+$rw->commit_txn_lazy;
done_testing();