]> granicus.if.org Git - php/commitdiff
- add tests for extractTo, set/getComment and stream and zip_entry_close
authorPierre Joye <pajoye@php.net>
Mon, 30 Oct 2006 17:43:21 +0000 (17:43 +0000)
committerPierre Joye <pajoye@php.net>
Mon, 30 Oct 2006 17:43:21 +0000 (17:43 +0000)
ext/zip/tests/oo_extract.phpt [new file with mode: 0644]
ext/zip/tests/oo_getcomment.phpt [new file with mode: 0644]
ext/zip/tests/oo_getnameindex.phpt [new file with mode: 0644]
ext/zip/tests/oo_setcomment.phpt [new file with mode: 0644]
ext/zip/tests/oo_stream.phpt [new file with mode: 0644]
ext/zip/tests/utils.inc
ext/zip/tests/zip_entry_read.phpt

diff --git a/ext/zip/tests/oo_extract.phpt b/ext/zip/tests/oo_extract.phpt
new file mode 100644 (file)
index 0000000..860976b
--- /dev/null
@@ -0,0 +1,82 @@
+--TEST--
+extractTo
+--SKIPIF--
+<?php
+/* $Id$ */
+if(!extension_loaded('zip')) die('skip');
+?>
+--FILE--
+<?php
+$dirname = dirname(__FILE__) . '/';
+$file = $dirname . 'test_with_comment.zip';
+include $dirname . 'utils.inc';
+$zip = new ZipArchive;
+if (!$zip->open($file)) {
+       exit('failed');
+}
+
+
+$zip->extractTo($dirname . '__oo_extract_tmp');
+if (!is_dir($dirname . '__oo_extract_tmp')) {
+       echo "failed. mkdir\n";
+}
+
+if (!is_dir($dirname .'__oo_extract_tmp/foobar')) {
+       echo "failed. mkdir foobar\n";
+}
+
+if (!file_exists($dirname . '__oo_extract_tmp/foobar/baz')) {
+       echo "failed. mkdir foobar\n";
+} else {
+       echo file_get_contents($dirname . '__oo_extract_tmp/foobar/baz') . "\n";
+}
+
+if (!file_exists($dirname . '__oo_extract_tmp/bar')) {
+       echo "failed. bar file\n";
+} else {
+       echo file_get_contents($dirname . '__oo_extract_tmp/bar') . "\n";
+}
+
+if (!file_exists($dirname . '__oo_extract_tmp/foo')) {
+       echo "failed. foo file\n";
+} else {
+       echo file_get_contents($dirname . '__oo_extract_tmp/foo') . "\n";
+}
+
+
+/* extract one file */
+$zip->extractTo($dirname . '__oo_extract_tmp', 'bar');
+if (!file_exists($dirname . '__oo_extract_tmp/bar')) {
+       echo "failed. extract  bar file\n";
+} else {
+       echo file_get_contents($dirname . '__oo_extract_tmp/bar') . "\n";
+}
+
+/* extract two files */
+$zip->extractTo($dirname . '__oo_extract_tmp', array('bar','foo'));
+if (!file_exists($dirname . '__oo_extract_tmp/bar')) {
+       echo "failed. extract  bar file\n";
+} else {
+       echo file_get_contents($dirname . '__oo_extract_tmp/bar') . "\n";
+}
+if (!file_exists($dirname . '__oo_extract_tmp/foo')) {
+       echo "failed. extract foo file\n";
+} else {
+       echo file_get_contents($dirname . '__oo_extract_tmp/foo') . "\n";
+}
+
+rmdir_rf($dirname . '__oo_extract_tmp');
+?>
+--EXPECTF--
+blabla laber rababer sülz
+
+bar
+
+foo
+
+
+bar
+
+bar
+
+foo
diff --git a/ext/zip/tests/oo_getcomment.phpt b/ext/zip/tests/oo_getcomment.phpt
new file mode 100644 (file)
index 0000000..d05385c
--- /dev/null
@@ -0,0 +1,36 @@
+--TEST--
+getComment
+--SKIPIF--
+<?php
+/* $Id$ */
+if(!extension_loaded('zip')) die('skip');
+?>
+--FILE--
+<?php
+$dirname = dirname(__FILE__) . '/';
+$file = $dirname . 'test_with_comment.zip';
+include $dirname . 'utils.inc';
+$zip = new ZipArchive;
+if (!$zip->open($file)) {
+       exit('failed');
+}
+echo $zip->getArchiveComment() . "\n";
+
+$idx = $zip->locateName('foo');
+echo $zip->getCommentName('foo') . "\n";
+echo $zip->getCommentIndex($idx);
+
+echo $zip->getCommentName('') . "\n";
+echo $zip->getCommentName() . "\n";
+
+$zip->close();
+
+?>
+--EXPECTF--
+Zip archive comment
+foo comment
+foo comment
+Notice: ZipArchive::getCommentName(): Empty string as entry name in %s on line %d
+
+
+Warning: ZipArchive::getCommentName() expects at least 1 parameter, 0 given in %s on line %d
diff --git a/ext/zip/tests/oo_getnameindex.phpt b/ext/zip/tests/oo_getnameindex.phpt
new file mode 100644 (file)
index 0000000..cd4c9db
--- /dev/null
@@ -0,0 +1,47 @@
+--TEST--
+getNameIndex
+--SKIPIF--
+<?php
+/* $Id$ */
+if(!extension_loaded('zip')) die('skip');
+?>
+--FILE--
+<?php
+$dirname = dirname(__FILE__) . '/';
+include $dirname . 'utils.inc';
+$file = $dirname . '__tmp_oo_rename.zip';
+
+@unlink($file);
+
+$zip = new ZipArchive;
+if (!$zip->open($file, ZIPARCHIVE::CREATE)) {
+       exit('failed');
+}
+
+$zip->addFromString('entry1.txt', 'entry #1');
+$zip->addFromString('entry2.txt', 'entry #2');
+$zip->addFromString('dir/entry2d.txt', 'entry #2');
+
+if (!$zip->status == ZIPARCHIVE::ER_OK) {
+       echo "failed to write zip\n";
+}
+$zip->close();
+
+if (!$zip->open($file)) {
+       exit('failed');
+}
+
+
+var_dump($zip->getNameIndex(0));
+var_dump($zip->getNameIndex(1));
+var_dump($zip->getNameIndex(2));
+var_dump($zip->getNameIndex(3));
+
+$zip->close();
+
+?>
+--EXPECTF--
+string(10) "entry1.txt"
+string(10) "entry2.txt"
+string(15) "dir/entry2d.txt"
+bool(false)
diff --git a/ext/zip/tests/oo_setcomment.phpt b/ext/zip/tests/oo_setcomment.phpt
new file mode 100644 (file)
index 0000000..89d6e8e
--- /dev/null
@@ -0,0 +1,71 @@
+--TEST--
+setComment
+--SKIPIF--
+<?php
+/* $Id$ */
+if(!extension_loaded('zip')) die('skip');
+?>
+--FILE--
+<?php
+$dirname = dirname(__FILE__) . '/';
+include $dirname . 'utils.inc';
+$file = $dirname . '__tmp_oo_set_comment.zip';
+
+@unlink($file);
+
+$zip = new ZipArchive;
+if (!$zip->open($file, ZIPARCHIVE::CREATE)) {
+       exit('failed');
+}
+
+$zip->addFromString('entry1.txt', 'entry #1');
+$zip->addFromString('entry2.txt', 'entry #2');
+$zip->addFromString('dir/entry2d.txt', 'entry #2');
+$zip->addFromString('entry4.txt', 'entry #1');
+$zip->addFromString('entry5.txt', 'entry #2');
+
+
+var_dump($zip->setCommentName('entry1.txt', 'entry1.txt'));
+var_dump($zip->setCommentName('entry2.txt', 'entry2.txt'));
+var_dump($zip->setCommentName('dir/entry2d.txt', 'dir/entry2d.txt'));
+var_dump($zip->setArchiveComment('archive'));
+
+var_dump($zip->setCommentIndex(3, 'entry4.txt'));
+var_dump($zip->setCommentIndex(4, 'entry5.txt'));
+var_dump($zip->setArchiveComment('archive'));
+
+if (!$zip->status == ZIPARCHIVE::ER_OK) {
+       echo "failed to write zip\n";
+}
+$zip->close();
+
+if (!$zip->open($file)) {
+       @unlink($file);
+       exit('failed');
+}
+
+var_dump($zip->getCommentIndex(0));
+var_dump($zip->getCommentIndex(1));
+var_dump($zip->getCommentIndex(2));
+var_dump($zip->getCommentIndex(3));
+var_dump($zip->getCommentIndex(4));
+var_dump($zip->getArchiveComment());
+
+$zip->close();
+@unlink($file);
+
+?>
+--EXPECTF--
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+string(10) "entry1.txt"
+string(10) "entry2.txt"
+string(15) "dir/entry2d.txt"
+string(10) "entry4.txt"
+string(10) "entry5.txt"
+string(7) "archive"
diff --git a/ext/zip/tests/oo_stream.phpt b/ext/zip/tests/oo_stream.phpt
new file mode 100644 (file)
index 0000000..126e78f
--- /dev/null
@@ -0,0 +1,50 @@
+--TEST--
+getStream
+--SKIPIF--
+<?php
+/* $Id$ */
+if(!extension_loaded('zip')) die('skip');
+?>
+--FILE--
+<?php
+$dirname = dirname(__FILE__) . '/';
+$file = $dirname . 'test_with_comment.zip';
+include $dirname . 'utils.inc';
+$zip = new ZipArchive;
+if (!$zip->open($file)) {
+       exit('failed');
+}
+$fp = $zip->getStream('foo');
+
+var_dump($fp);
+if(!$fp) exit("\n");
+$contents = '';
+while (!feof($fp)) {
+       $contents .= fread($fp, 255);
+}
+
+fclose($fp);
+$zip->close();
+var_dump($contents);
+
+
+$fp = fopen('zip://' . dirname(__FILE__) . '/test_with_comment.zip#foo', 'rb');
+if (!$fp) {
+  exit("cannot open\n");
+}
+$contents = '';
+while (!feof($fp)) {
+  $contents .= fread($fp, 2);
+}
+var_dump($contents);
+fclose($fp);
+
+?>
+--EXPECTF--
+resource(%d) of type (stream)
+string(5) "foo
+
+"
+string(5) "foo
+
+"
index 41a2791266410c03c899183ff77f2cf3ab1c815c..910604fa3073bb52f3ccfc912a6067e362eb984c 100644 (file)
@@ -6,3 +6,20 @@ function dump_entries_name($z) {
            echo $i . ' ' . $sb['name'] . "\n";
        }
 }
+
+/* recursively remove a directoryy */
+function rmdir_rf($dir) {
+       if ($handle = opendir($dir)) {
+               while (false !== ($item = readdir($handle))) {
+                       if ($item != "." && $item != "..") {
+                               if (is_dir($dir . '/' . $item)) {
+                                       rmdir_rf($dir . '/' . $item);
+                               } else {
+                                       unlink($dir . '/' . $item);
+                               }
+                       }
+               }
+               closedir($handle);
+               rmdir($dir);
+       }
+}
index 94dde59cbd22c8f96cd379a85f424511be70462b..d876f03fb51ca421914cd8f5a0e4c2288fd8a94e 100644 (file)
@@ -11,6 +11,7 @@ $zip    = zip_open(dirname(__FILE__)."/test_procedural.zip");
 $entry  = zip_read($zip);
 if (!zip_entry_open($zip, $entry, "r")) die("Failure");
 echo zip_entry_read($entry);
+zip_entry_close($entry);
 zip_close($zip);
 
 ?>