| use strict; | 
 | use warnings; | 
 | use Test::More; | 
 | use File::Spec::Functions qw/catfile/; | 
 | use IO::Uncompress::Unzip; | 
 |  | 
 | use FindBin; | 
 | BEGIN { | 
 |   unshift @INC, "$FindBin::Bin/../lib"; | 
 | }; | 
 |  | 
 | use Test::KorAP::XML::TEI qw!korap_tempfile!; | 
 |  | 
 | require_ok('KorAP::XML::TEI::Zipper'); | 
 |  | 
 | subtest 'Create Zipper' => sub { | 
 |   my $data; | 
 |   my ($fh, $outzip) = korap_tempfile('zipper'); | 
 |  | 
 |   my $zip = KorAP::XML::TEI::Zipper->new('', $outzip); | 
 |   $fh->close; | 
 |  | 
 |   ok($zip, 'Zipper initialized'); | 
 |  | 
 |   ok($zip->new_stream('data/file1.txt')->print('hello'), 'Write to initial stream'); | 
 |   ok($zip->new_stream('data/file2.txt')->print('world'), 'Write to appended stream'); | 
 |  | 
 |   $zip->close; | 
 |  | 
 |   ok(-e $outzip, 'Zip exists'); | 
 |  | 
 |   my $unzip = IO::Uncompress::Unzip->new($outzip, Name => 'data/file1.txt'); | 
 |  | 
 |   $data .= $unzip->getline while !$unzip->eof; | 
 |   ok($unzip->close, 'Closed'); | 
 |  | 
 |   is($data, 'hello', 'Data correct'); | 
 |  | 
 |   $unzip = IO::Uncompress::Unzip->new($outzip, Name => 'data/file2.txt'); | 
 |  | 
 |   $data = ''; | 
 |   $data .= $unzip->getline while !$unzip->eof; | 
 |   ok($unzip->close, 'Closed'); | 
 |  | 
 |   is($data, 'world', 'Data correct'); | 
 | }; | 
 |  | 
 |  | 
 | subtest 'Create Zipper with root dir "."' => sub { | 
 |   my $data; | 
 |   my ($fh, $outzip) = korap_tempfile('zipper'); | 
 |  | 
 |   my $zip = KorAP::XML::TEI::Zipper->new('.', $outzip); | 
 |   $fh->close; | 
 |  | 
 |   ok($zip, 'Zipper initialized'); | 
 |  | 
 |   ok($zip->new_stream('data/file1.txt')->print('hello'), 'Write to initial stream'); | 
 |   $zip->close; | 
 |   ok(-e $outzip, 'Zip exists'); | 
 |  | 
 |   ok(IO::Uncompress::Unzip->new($outzip, Name => 'data/file1.txt'), 'File exists'); | 
 | }; | 
 |  | 
 |  | 
 | subtest 'Create Zipper with root dir "subdir"' => sub { | 
 |   my $data; | 
 |   my ($fh, $outzip) = korap_tempfile('zipper'); | 
 |  | 
 |   my $zip = KorAP::XML::TEI::Zipper->new('subdir', $outzip); | 
 |   $fh->close; | 
 |  | 
 |   ok($zip, 'Zipper initialized'); | 
 |  | 
 |   ok($zip->new_stream('data/file1.txt')->print('hello'), 'Write to initial stream'); | 
 |   $zip->close; | 
 |   ok(-e $outzip, 'Zip exists'); | 
 |  | 
 |   ok(IO::Uncompress::Unzip->new($outzip, Name => 'subdir/data/file1.txt'), 'File exists'); | 
 |   ok(!IO::Uncompress::Unzip->new($outzip, Name => 'data/file1.txt'), 'File exists not'); | 
 | }; | 
 |  | 
 | subtest 'Create Zipper with root dir "./"' => sub { | 
 |   my $data; | 
 |   my ($fh, $outzip) = korap_tempfile('zipper'); | 
 |  | 
 |   my $zip = KorAP::XML::TEI::Zipper->new('./', $outzip); | 
 |   $fh->close; | 
 |  | 
 |   ok($zip, 'Zipper initialized'); | 
 |  | 
 |   ok($zip->new_stream('data/file1.txt')->print('hello'), 'Write to initial stream'); | 
 |   $zip->close; | 
 |   ok(-e $outzip, 'Zip exists'); | 
 |  | 
 |   # Uncompress GOE/header.xml from zip file | 
 |   ok(IO::Uncompress::Unzip->new($outzip, Name => 'data/file1.txt'), 'File exists'); | 
 | }; | 
 |  | 
 |  | 
 | done_testing; |