diff options
author | Eric Wong <e@80x24.org> | 2020-10-27 07:54:09 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2020-11-07 10:17:21 +0000 |
commit | d42bb8077d6fe78a61458c990989667308ff1dd2 (patch) | |
tree | d48ec8cee9c6d4be4891670e0cc9baafe4b654ba /t/search.t | |
parent | dff966c6e7e804b4e760aae39dda0b2c1a6ef30f (diff) | |
download | public-inbox-d42bb8077d6fe78a61458c990989667308ff1dd2.tar.gz |
This will be used to track cross-posted messages in the external/detached index.
Diffstat (limited to 't/search.t')
-rw-r--r-- | t/search.t | 28 |
1 files changed, 24 insertions, 4 deletions
@@ -341,6 +341,14 @@ $ibx->with_umask(sub { my $uid = PublicInbox::SearchIdx::get_val($doc, $col); is($uid, $smsg->{num}, 'UID column matches {num}'); is($uid, $m->get_docid, 'UID column matches docid'); + + # check ->xref3 for external index: + is_deeply($smsg->xref3($doc), [], 'xref3 empty by default'); + my $exp = "inbox.com.example:$uid:deadbeef"; + $doc->add_boolean_term('P'.$exp); + is_deeply($smsg->xref3($doc), [ $exp ], 'xref3 can be set'); + $doc->remove_term('P'.$exp); + is_deeply($smsg->xref3($doc), [], 'xref3 can be unset'); } $mset = $ibx->search->mset('tc:list@example.com'); @@ -513,8 +521,13 @@ $ibx->with_umask(sub { $rw_commit->(); my $doc_id = $rw->add_message(eml_load('t/data/message_embed.eml')); ok($doc_id > 0, 'messages within messages'); - $rw->commit_txn_lazy; - $ibx->search->reopen; + + my $eml = PublicInbox::Eml->new(<<EOF); +List-Id: <blahblah.example.com> + +EOF + $rw->add_xref3($doc_id, 1, 'deadbeef', 'newsgroup1.example', $eml); + $rw_commit->(); my $n_test_eml = $query->('n:test.eml'); is(scalar(@$n_test_eml), 1, 'got a result'); my $n_embed2x_eml = $query->('n:embed2x.eml'); @@ -532,8 +545,15 @@ $ibx->with_umask(sub { is($query->('s:"mail header experiments"')->[0]->{mid}, '20200418222508.GA13918@dcvr', 'Subject search reaches inside message/rfc822'); + is($query->('l:blahblah.example.com')->[0]->{num}, $doc_id, + 'xref3 List-Id probabilistic works'); + is($query->('lid:blahblah.example.com')->[0]->{num}, $doc_id, + 'xref3 List-Id boolean term works'); + $rw->remove_xref3($doc_id, 'deadbeef', 'newsgroup1.example', $eml); + $rw->commit_txn_lazy; + $ibx->search->reopen; + my $res = $query->('lid:blahblah.example.com'); + is_deeply($res, [], '->remove_xref3 dropped boolean term'); }); done_testing(); - -1; |