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 )