Archive-Zip

 view release on metacpan or  search on metacpan

t/02_main.t  view on Meta::CPAN


# membersMatching	# Archive::Zip::Archive
@members = $zip->membersMatching('file');
is(scalar(@members), 1);
is($members[0],      $member);

@members = $zip->membersMatching('.txt$');
is(scalar(@members), 2);
is($members[1],      $member);

#--------- remove the string member and test the file
# removeMember	# Archive::Zip::Archive
$member = $zip->removeMember($members[0]);
is($member, $members[0]);

azwok($zip);

#--------- add the string member at the end and test the file
# addMember	# Archive::Zip::Archive
$zip->addMember($member);
@members = $zip->members();

is(scalar(@members), 3);
is($members[2],      $member);

# memberNames	# Archive::Zip::Archive
@memberNames = $zip->memberNames();
is(scalar(@memberNames), 3);
is($memberNames[1],      $memberName);

azwok($zip);

#--------- remove the file member
$member = $zip->removeMember($members[1]);
is($member,                 $members[1]);
is($zip->numberOfMembers(), 2);

#--------- replace the string member with the file member
# replaceMember	# Archive::Zip::Archive
$member = $zip->replaceMember($members[2], $member);
is($member,                 $members[2]);
is($zip->numberOfMembers(), 2);

#--------- re-add the string member
$zip->addMember($member);
is($zip->numberOfMembers(), 3);

azwok($zip);

#--------- add compressed file
$member = $zip->addFile(testPath('file.txt'));
ok(defined($member));
$member->desiredCompressionMethod(COMPRESSION_DEFLATED);
$member->fileName(testPath('fileC.txt', PATH_ZIPFILE));

#--------- add uncompressed string
$member = $zip->addString(TESTSTRING, testPath('stringU.txt', PATH_ZIPFILE));
ok(defined($member));
$member->desiredCompressionMethod(COMPRESSION_STORED);

# Now, the file looks like this:
# Length   Method    Size  Ratio   Date   Time   CRC-32    Name
#--------  ------  ------- -----   ----   ----   ------    ----
#       0  Stored        0   0%  03-17-00 12:30  00000000  testDir/
#     300  Stored      300   0%  03-17-00 12:30  ac373f32  testDir/file.txt
#     300  Defl:N      146  51%  03-17-00 12:30  ac373f32  testDir/string.txt
#     300  Stored      300   0%  03-17-00 12:30  ac373f32  testDir/stringU.txt
#     300  Defl:N      146  51%  03-17-00 12:30  ac373f32  testDir/fileC.txt
#--------          -------  ---                            -------
#    1200              892  26%                            5 files

@members         = $zip->members();
$numberOfMembers = $zip->numberOfMembers();
is($numberOfMembers, 5);

#--------- make sure the contents of the stored file member are OK.
# contents	# Archive::Zip::Archive
is($zip->contents($members[1]), TESTSTRING);

# contents	# Archive::Zip::Member
is($members[1]->contents(), TESTSTRING);

#--------- make sure the contents of the compressed string member are OK.
is($members[2]->contents(), TESTSTRING);

#--------- make sure the contents of the stored string member are OK.
is($members[3]->contents(), TESTSTRING);

#--------- make sure the contents of the compressed file member are OK.
is($members[4]->contents(), TESTSTRING);

#--------- write to INPUTZIP
azwok($zip, 'file' => INPUTZIP);

#--------- read from INPUTZIP (appending its entries)
# read	# Archive::Zip::Archive
azok($zip->read(INPUTZIP));
is  ($zip->numberOfMembers(), 10);

#--------- clean up duplicate names
@members = $zip->members();
$member  = $zip->removeMember($members[5]);
is($member->fileName(), testPath(PATH_ZIPDIR));

SCOPE: {
    for my $i (6 .. 9) {
        $memberName = $members[$i]->fileName();
        $memberName =~ s/\.txt/2.txt/;
        $members[$i]->fileName($memberName);
    }
}
is(scalar($zip->membersMatching('2.txt')), 4);

#--------- write zip out and test it.
azwok($zip);

#--------- Make sure that we haven't renamed files (this happened!)
is(scalar($zip->membersMatching('2\.txt$')), 4);

#--------- Now try extracting everyone
@members = $zip->members();



( run in 1.766 second using v1.01-cache-2.11-cpan-ceb78f64989 )