Archive-Zip-SimpleZip
view release on metacpan or search on metacpan
t/020main-unzip-stream.t view on Meta::CPAN
my $hour = ( ( $dt >> 11 ) & 0x1f );
my $min = ( ( $dt >> 5 ) & 0x3f );
my $sec = ( ( $dt << 1 ) & 0x3e );
use POSIX 'mktime';
my $time_t = mktime( $sec, $min, $hour, $mday, $mon, $year, 0, 0, -1 );
return 0 if ! defined $time_t;
return $time_t;
}
sub roundTripUnixTime
{
my $t = shift;
return unixToDosTime(dosToUnixTime($t));
}
if(1)
{
title "errors";
{
title "no zip filname";
my $z = Archive::Zip::StreamedUnzip->new() ;
is $z, undef ;
is $StreamedUnzipError, "Missing Filename",
" missing filename";
}
if (1)
{
title "directory";
my $lex = LexDir->new(my $dir);
my $z = Archive::Zip::StreamedUnzip->new($dir) ;
is $z, undef ;
is $StreamedUnzipError, "Illegal Filename",
" missing filename";
}
{
title "zip file in directory that doesn't exist";
my $lex = LexDir->new(my $dir);
my $zipfile = File::Spec->catfile($dir, "not", "exist", "x.zip");
my $z = Archive::Zip::StreamedUnzip->new($zipfile) ;
is $z, undef ;
like $StreamedUnzipError, qr/cannot open file/,
" missing filename";
}
# SKIP:
# {
# title "file not readable";
# my $lex = LexFile->new(my $zipfile);
# chmod 0444, $zipfile
# or skip "Cannot create non-readable file", 3 ;
# skip "Cannot create non-readable file", 3
# if -r $zipfile ;
# ok ! -r $zipfile, " zip file not readable";
# my $z = Archive::Zip::StreamedUnzip->new($zipfile) ;
# is $z, undef ;
# is $StreamedUnzipError, "Illegal Filename",
# " Illegal Filename";
# chmod 0777, $zipfile ;
# }
{
title "filename undef";
my $z = Archive::Zip::StreamedUnzip->new(undef);
is $z, undef ;
is $StreamedUnzipError, "Illegal Filename",
" missing filename";
}
if (0) # TODO
{
title "Bad parameter in new";
my $lex = LexFile->new(my $zipfile);
eval { my $z = Archive::Zip::StreamedUnzip->new($zipfile, fred => 1) ; };
like $@, qr/Archive::Zip::StreamedUnzip: unknown key value(s) fred at/,
" value is bad";
like $StreamedUnzipError, qr/Archive::Zip::StreamedUnzip: unknown key value(s) fred at/,
" missing filename";
}
}
use Fcntl ':mode';
sub testType
{
my $object = shift;
my $expectedType = shift ;
return $object->isFile() if $expectedType eq 'file';
return $object->isDirectory() if $expectedType eq 'dir';
die "Bad test '$expectedType'";
}
if (1)
{
for my $method ( ZIP_CM_DEFLATE, ZIP_CM_BZIP2, ZIP_CM_STORE, ZIP_CM_LZMA, ZIP_CM_XZ, ZIP_CM_ZSTD)
{
for my $comment ('', "abcde")
{
for my $streamed (0, 1)
{
for my $to ( qw(filehandle filename buffer))
{
SKIP:
for my $zip64 (0, 1)
{
my $methodName = $methodsAvailable{$method} || '';
title "** TO $to, Method $methodName($method), Comment '$comment', Streamed $streamed. Zip64 $zip64";
( run in 0.490 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )