X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fpsgi_search.t;h=4fe315a1e2fdf32db4690699038143c4966a96f4;hb=78792fee4031aee0a8bd532bff98efc2b9409d68;hp=d1050437b232cc5e70f03c7072f37671e46af99c;hpb=3c313f9034aac96182e2efdc2f92c40803626f32;p=public-inbox.git diff --git a/t/psgi_search.t b/t/psgi_search.t index d1050437..4fe315a1 100644 --- a/t/psgi_search.t +++ b/t/psgi_search.t @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2019 all contributors +# Copyright (C) 2017-2020 all contributors # License: AGPL-3.0+ use strict; use warnings; @@ -7,17 +7,13 @@ use Email::MIME; use PublicInbox::Config; use PublicInbox::Inbox; use PublicInbox::InboxWritable; -use PublicInbox::WWW; use bytes (); # only for bytes::length use PublicInbox::TestCommon; my @mods = qw(DBD::SQLite Search::Xapian HTTP::Request::Common Plack::Test URI::Escape Plack::Builder); -foreach my $mod (@mods) { - eval "require $mod"; - plan skip_all => "$mod missing for psgi_search.t" if $@; -} - -use_ok $_ foreach (@mods, qw(PublicInbox::SearchIdx)); +require_mods(@mods); +use_ok($_) for (qw(HTTP::Request::Common Plack::Test)); +use_ok 'PublicInbox::WWW'; my ($tmpdir, $for_destroy) = tmpdir(); my $ibx = PublicInbox::Inbox->new({ @@ -31,16 +27,32 @@ my $im = $ibx->importer(0); my $digits = '10010260936330'; my $ua = 'Pine.LNX.4.10'; my $mid = "$ua.$digits.2460-100000\@penguin.transmeta.com"; -my $data = <<"EOF"; +my $mime = PublicInbox::MIME->new(< From: Ævar Arnfjörð Bjarmason To: git\@vger.kernel.org EOF +$im->add($mime); + +$mime = PublicInbox::MIME->new(<<'EOF'); +Subject: +Message-ID: +From: blank subject +To: git@vger.kernel.org -my $mime = Email::MIME->new(\$data); +EOF $im->add($mime); + +$mime = PublicInbox::MIME->new(<<'EOF'); +Message-ID: +From: no subject at all +To: git@vger.kernel.org + +EOF +$im->add($mime); + $im->done; PublicInbox::SearchIdx->new($ibx, 1)->index_sync; @@ -82,6 +94,25 @@ test_psgi(sub { $www->call(@_) }, sub { like($res->content, $mid_re, 'found mid in response'); chop($digits); } + + $res = $cb->(GET('/test/')); + $html = $res->content; + like($html, qr/\bhref="no-subject-at-all[^>]+>\(no subject\)]+>\(no subject\)(GET('/test/?q=tc:git')); + like($html, qr/\bhref="no-subject-at-all[^>]+>\(no subject\)]+>\(no subject\)(GET('/test/no-subject-at-all@example.com/raw')); + like($res->header('Content-Disposition'), + qr/filename=no-subject\.txt/); + $res = $cb->(GET('/test/no-subject-at-all@example.com/t.mbox.gz')); + like($res->header('Content-Disposition'), + qr/filename=no-subject\.mbox\.gz/); }); done_testing();