diff --git a/t/03-permanent.t b/t/03-permanent.t index adf3abbbc20e7786f221d0477f6201c56df5ad90..f78a30fa8d19da28aeb63199ff8fa7e9ecd77fc5 100644 --- a/t/03-permanent.t +++ b/t/03-permanent.t @@ -1,9 +1,33 @@ use v5.36; use Test::Cmd; -use Test::More tests =>3; +use Test::More tests => 4; use Test::TA; +use Archive::Tar; +use Path::Tiny; my $testapp = Test::TA::testapp(); -my $host = Test::TA::testhost(); +my $path_valid = path($testapp->workpath)->child("valid"); +my $path_invalid = path($testapp->workpath)->child("invalid"); +$path_valid->mkdir(); +$path_invalid->mkdir(); +my $tar = Archive::Tar->new(); +my $tarpath = path(__FILE__)->absolute->parent->child("/../testdata.tgz"); +say $tarpath; +$tar->read($tarpath); +$tar->setcwd($path_valid); +$tar->extract(); +$tar->setcwd($path_invalid); +$tar->extract(); +$path_invalid->visit( # patch files to get invalid bags + sub { + my ($path, $state) = @_; + if ($path =~ m/bag-info.txt$/) { + $path->append_utf8("Payload-Oxum: 0.0"); + } + 1; + }, + {recurse => 1 } +); + local $ENV{'HOME'} = $testapp->workpath(); # tests subtest 'help check' => sub { diff --git a/testdata.tgz b/testdata.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7214f9ec4fdaee1480d10ee2fe239ae938d700b1 Binary files /dev/null and b/testdata.tgz differ