From: Eric Wong Date: Mon, 30 Sep 2024 21:30:03 +0000 (+0000) Subject: t/www_static: modernize test X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa45cbf5be5405b50895a83e8706953a6f3ea743;p=thirdparty%2Fpublic-inbox.git t/www_static: modernize test autodie is standard in Perl v5.10+ and we now have PublicInbox::IO::write_file to denoise test setup code. Then we'll favor the non-wantarray calls to tmpdir() and rely on an overloaded stringification rather than keeping the $for_destroy object around. --- diff --git a/t/www_static.t b/t/www_static.t index 83a96a5e6..48d120d68 100644 --- a/t/www_static.t +++ b/t/www_static.t @@ -1,17 +1,17 @@ -# Copyright (C) 2019-2021 all contributors +#!perl -w +# Copyright (C) all contributors # License: AGPL-3.0+ -use strict; -use warnings; -use Test::More; +use v5.12; +use autodie; use PublicInbox::TestCommon; -my ($tmpdir, $for_destroy) = tmpdir(); -my @mods = qw(HTTP::Request::Common Plack::Test URI::Escape); +use PublicInbox::IO qw(write_file); +my $tmpdir = tmpdir(); require_mods qw(psgi); require IO::Uncompress::Gunzip; use_ok 'PublicInbox::WwwStatic'; my $app = sub { - my $ws = PublicInbox::WwwStatic->new(docroot => $tmpdir, @_); + my $ws = PublicInbox::WwwStatic->new(docroot => "$tmpdir", @_); sub { $ws->call(shift) }; }; @@ -19,9 +19,7 @@ test_psgi($app->(), sub { my $cb = shift; my $res = $cb->(GET('/')); is($res->code, 404, '404 on "/" by default'); - open my $fh, '>', "$tmpdir/index.html" or die; - print $fh 'hi' or die; - close $fh or die; + write_file '>', "$tmpdir/index.html", 'hi'; $res = $cb->(GET('/')); is($res->code, 200, '200 with index.html'); is($res->content, 'hi', 'default index.html returned'); @@ -41,8 +39,8 @@ test_psgi($app->(autoindex => 1, index => []), sub { my $ls = $res->content; like($ls, qr/index\.html/, 'got listing with index.html'); ok(index($ls, $updir) < 0, 'no updir at /'); - mkdir("$tmpdir/dir") or die; - rename("$tmpdir/index.html", "$tmpdir/dir/index.html") or die; + mkdir "$tmpdir/dir"; + rename "$tmpdir/index.html", "$tmpdir/dir/index.html"; $res = $cb->(GET('/dir/')); is($res->code, 200, '200 with autoindex for dir/'); @@ -58,8 +56,8 @@ test_psgi($app->(autoindex => 1, index => []), sub { like($res->header('Location'), qr!://[^/]+/dir/\z!, 'redirected w/ slash'); - rename("$tmpdir/dir/index.html", "$tmpdir/dir/foo") or die; - link("$tmpdir/dir/foo", "$tmpdir/dir/foo.gz") or die; + rename "$tmpdir/dir/index.html", "$tmpdir/dir/foo"; + link "$tmpdir/dir/foo", "$tmpdir/dir/foo.gz"; $res = $cb->(GET('/dir/')); unlike($res->content, qr/>foo\.gz(autoindex => 1, index => []), sub { $res = $cb->(GET('/dir/foo/bar')); is($res->code, 404, 'using file as dir fails'); - unlink("$tmpdir/dir/foo") or die; + unlink "$tmpdir/dir/foo"; $res = $cb->(GET('/dir/')); like($res->content, qr/>foo\.gz', "$tmpdir/dir/foo" or die; - print $fh "uncompressed\n" or die; - close $fh or die; - utime(0, 0, "$tmpdir/dir/foo") or die; + write_file '>', "$tmpdir/dir/foo", "uncompressed\n"; + utime 0, 0, "$tmpdir/dir/foo"; $res = $cb->(GET('/dir/')); my $html = $res->content; like($html, qr/>foo(autoindex => 1, index => []), sub { is($res->content, "uncompressed\n", 'got uncompressed on mtime mismatch'); - utime(0, 0, "$tmpdir/dir/foo.gz") or die; + utime 0, 0, "$tmpdir/dir/foo.gz"; my $get = GET('/dir/foo'); $get->header('Accept-Encoding' => 'gzip'); $res = $cb->($get);