From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id DE5D01FC11 for ; Mon, 15 Mar 2021 11:58:28 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 10/35] t/plack: use create_inbox Date: Mon, 15 Mar 2021 12:58:01 +0100 Message-Id: <20210315115826.17591-11-e@80x24.org> In-Reply-To: <20210315115826.17591-1-e@80x24.org> References: <20210315115826.17591-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Only a few dozen milliseconds saved, but better than nothing. --- t/plack.t | 69 +++++++++++++++++++++---------------------------------- 1 file changed, 26 insertions(+), 43 deletions(-) diff --git a/t/plack.t b/t/plack.t index 8d8aa100..db72e6cc 100644 --- a/t/plack.t +++ b/t/plack.t @@ -1,37 +1,20 @@ +#!perl -w # Copyright (C) 2014-2021 all contributors # License: AGPL-3.0+ use strict; -use warnings; -use Test::More; +use v5.10.1; use PublicInbox::TestCommon; my $psgi = "./examples/public-inbox.psgi"; -my ($tmpdir, $for_destroy) = tmpdir(); -my $pi_config = "$tmpdir/config"; -my $inboxdir = "$tmpdir/main.git"; -my $addr = 'test-public@example.com'; my @mods = qw(HTTP::Request::Common Plack::Test URI::Escape); require_mods(@mods); -use_ok 'PublicInbox::Import'; -use_ok 'PublicInbox::Git'; -my @ls; - foreach my $mod (@mods) { use_ok $mod; } -local $ENV{PI_CONFIG} = $pi_config; ok(-f $psgi, "psgi example file found"); my $pfx = 'http://example.com/test'; -ok(run_script(['-init', 'test', $inboxdir, "$pfx/", $addr]), - 'initialized repo'); -xsys_e(qw(git config -f), $pi_config, - qw(publicinbox.test.newsgroup inbox.test)); -open my $fh, '>', "$inboxdir/description" or die "open: $!\n"; -print $fh "test for public-inbox\n"; -close $fh or die "close: $!\n"; -my $app = require $psgi; -my $git = PublicInbox::Git->new($inboxdir); -my $im = PublicInbox::Import->new($git, 'test', $addr); # ensure successful message delivery -{ - my $mime = PublicInbox::Eml->new(<{-primary_address}; + $im->add(PublicInbox::Eml->new(<add'; From: Me To: You Cc: $addr @@ -42,26 +25,14 @@ Date: Fri, 02 Oct 1993 00:00:00 +0000 > quoted text zzzzzz EOF - $im->add($mime); - $im->done; - my $rev = $git->qx(qw(rev-list HEAD)); - like($rev, qr/\A[a-f0-9]{40,}/, "good revision committed"); - @ls = $git->qx(qw(ls-tree -r --name-only HEAD)); - chomp @ls; - # multipart with two text bodies - $mime = eml_load 't/plack-2-txt-bodies.eml'; - $im->add($mime); + $im->add(eml_load('t/plack-2-txt-bodies.eml')) or BAIL_OUT '->add'; # multipart with attached patch + filename - $mime = eml_load 't/plack-attached-patch.eml'; - $im->add($mime); + $im->add(eml_load('t/plack-attached-patch.eml')) or BAIL_OUT '->add'; # multipart collapsed to single quoted-printable text/plain - $mime = eml_load 't/plack-qp.eml'; - like($mime->body_raw, qr/hi =3D bye=/, 'our test used QP correctly'); - $im->add($mime); - + $im->add(eml_load('t/plack-qp.eml')) or BAIL_OUT '->add'; my $crlf = < @@ -77,11 +48,24 @@ Date: Fri, 02 Oct 1993 00:00:00 +0000 :( EOF $crlf =~ s/\n/\r\n/sg; - $im->add(PublicInbox::Eml->new($crlf)); + $im->add(PublicInbox::Eml->new($crlf)) or BAIL_OUT '->add'; - $im->done; -} + open my $fh, '>', "$ibx->{inboxdir}/description" or BAIL_OUT "open: $!"; + print $fh "test for public-inbox\n" or BAIL_OUT; + close $fh or BAIL_OUT "close: $!"; + open $fh, '>', "$ibx->{inboxdir}/pi_config"; + print $fh <{inboxdir} + newsgroup = inbox.test + address = $addr + url = $pfx/ +EOF + close $fh or BAIL_OUT "close: $!"; +}); +local $ENV{PI_CONFIG} = "$ibx->{inboxdir}/pi_config"; +my $app = require $psgi; test_psgi($app, sub { my ($cb) = @_; foreach my $u (qw(robots.txt favicon.ico .well-known/foo)) { @@ -259,8 +243,7 @@ test_psgi($app, sub { # for a while, we used to support /$INBOX/$X40/ # when we "compressed" long Message-IDs to SHA-1 # Now we're stuck supporting them forever :< - foreach my $path (@ls) { - $path =~ tr!/!!d; + foreach my $path ('f2912279bd7bcd8b7ab3033234942d58746d56f7') { my $from = "http://example.com/test/$path/"; my $res = $cb->(GET($from)); is(301, $res->code, 'is permanent redirect');