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 )