Debian lenny version packages
[pkg-perl] / deb-src / libarchive-zip-perl / libarchive-zip-perl-1.18 / t / 04_readmember.t
1 #!/usr/bin/perl -w
2
3 use strict;
4 use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
5 use Archive::Zip::MemberRead;
6
7 use Test::More tests => 8;
8 BEGIN {
9     unshift @INC, "t/"; 
10     require( File::Spec->catfile('t', 'common.pl') )
11                 or die "Can't load t/common.pl";
12 }
13
14 use constant FILENAME => File::Spec->catfile(TESTDIR, 'member_read.zip');
15
16 my ($zip, $member, $fh, @data);
17 $zip  = new Archive::Zip;
18 isa_ok( $zip, 'Archive::Zip' );
19 @data = ( 'Line 1', 'Line 2', '', 'Line 3', 'Line 4' );
20
21 $zip->addString(join("\n", @data), 'string.txt');
22 $zip->writeToFileNamed(FILENAME);
23
24 $member = $zip->memberNamed('string.txt');
25 $fh     = $member->readFileHandle();
26 ok( $fh );
27
28 my ($line, $not_ok, $ret, $buffer);
29 while (defined($line = $fh->getline()))
30 {
31         $not_ok = 1 if ($line ne $data[$fh->input_line_number()-1]);
32 }
33 ok( !$not_ok );
34
35 $fh->rewind();
36 $ret = $fh->read($buffer, length($data[0]));
37 ok( $ret == length($data[0]) );
38 ok( $buffer eq $data[0] );
39 $fh->close();
40
41 #
42 # Different usages 
43 #
44 $fh = new Archive::Zip::MemberRead($zip, 'string.txt');
45 ok($fh);
46
47 $fh = new Archive::Zip::MemberRead($zip, $zip->memberNamed('string.txt'));
48 ok($fh);
49
50 $fh = new Archive::Zip::MemberRead($zip->memberNamed('string.txt'));
51 ok($fh);