-# Copyright (C) 2016 all contributors <meta@public-inbox.org>
+# Copyright (C) 2016-2018 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
use strict;
use warnings;
use Test::More;
-use_ok('PublicInbox::SearchMsg');
use_ok('PublicInbox::SearchThread');
use Email::Simple;
my $mt = eval {
is($check, $st, 'Mail::Thread output matches');
}
-@msgs = map { bless $_, 'PublicInbox::SearchMsg' } (
- { mid => 'a@b' },
- { mid => 'b@c', references => '<a@b> <b@c>' },
- { mid => 'd@e', references => '<d@e>' },
-);
-
-is(thread_to_s(\@msgs), "a\@b\n b\@c\nd\@e\n", 'ok with self-references');
-
done_testing();
sub thread_to_s {
- my $th = PublicInbox::SearchThread->new(shift);
- $th->thread;
- $th->order(sub { [ sort { $a->{id} cmp $b->{id} } @{$_[0]} ] });
+ my ($msgs) = @_;
+ my $rootset = PublicInbox::SearchThread::thread($msgs, sub {
+ [ sort { $a->{id} cmp $b->{id} } @{$_[0]} ] });
my $st = '';
- my @q = map { (0, $_) } @{$th->{rootset}};
+ my @q = map { (0, $_) } @$rootset;
while (@q) {
my $level = shift @q;
my $node = shift @q or next;