4 use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
5 use Archive::Zip::MemberRead;
7 use Test::More tests => 8;
10 require( File::Spec->catfile('t', 'common.pl') )
11 or die "Can't load t/common.pl";
14 use constant FILENAME => File::Spec->catfile(TESTDIR, 'member_read.zip');
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' );
21 $zip->addString(join("\n", @data), 'string.txt');
22 $zip->writeToFileNamed(FILENAME);
24 $member = $zip->memberNamed('string.txt');
25 $fh = $member->readFileHandle();
28 my ($line, $not_ok, $ret, $buffer);
29 while (defined($line = $fh->getline()))
31 $not_ok = 1 if ($line ne $data[$fh->input_line_number()-1]);
36 $ret = $fh->read($buffer, length($data[0]));
37 ok( $ret == length($data[0]) );
38 ok( $buffer eq $data[0] );
44 $fh = new Archive::Zip::MemberRead($zip, 'string.txt');
47 $fh = new Archive::Zip::MemberRead($zip, $zip->memberNamed('string.txt'));
50 $fh = new Archive::Zip::MemberRead($zip->memberNamed('string.txt'));