xref: /PHP-5.5/ext/phar/tests/phar_extract2.phpt (revision 377ff97a)
1--TEST--
2Phar: Phar::extractTo() - .phar safety
3--SKIPIF--
4<?php if (!extension_loaded("phar")) die("skip"); ?>
5--INI--
6phar.readonly=0
7--FILE--
8<?php
9
10$fname = dirname(__FILE__) . '/tempmanifest2.phar.php';
11$pname = 'phar://' . $fname;
12
13$phar = new Phar($fname);
14$phar->setDefaultStub();
15$phar->setAlias('fred');
16$phar['file1.txt'] = 'hi';
17$phar['file2.txt'] = 'hi2';
18$phar['subdir/ectory/file.txt'] = 'hi3';
19$phar->mount($pname . '/mount', __FILE__);
20$phar->addEmptyDir('one/level');
21
22$phar->extractTo(dirname(__FILE__) . '/extract', 'mount');
23$phar->extractTo(dirname(__FILE__) . '/extract');
24$out = array();
25
26foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extract', 0x00003000), RecursiveIteratorIterator::CHILD_FIRST) as $path => $file) {
27	$extracted[] = $path;
28}
29
30sort($extracted);
31
32foreach ($extracted as $out) {
33	echo "$out\n";
34}
35
36?>
37===DONE===
38--CLEAN--
39<?php
40@unlink(dirname(__FILE__) . '/tempmanifest2.phar.php');
41$dir = dirname(__FILE__) . '/extract/';
42@unlink($dir . 'file1.txt');
43@unlink($dir . 'file2.txt');
44@unlink($dir . 'subdir/ectory/file.txt');
45@rmdir($dir . 'subdir/ectory');
46@rmdir($dir . 'subdir');
47@rmdir($dir . 'one/level');
48@rmdir($dir . 'one');
49@rmdir($dir);
50$dir = dirname(__FILE__) . '/extract1/';
51@rmdir($dir);
52?>
53--EXPECTF--
54%sextract%cfile1.txt
55%sextract%cfile2.txt
56%sextract%cone
57%sextract%csubdir
58%sextract%csubdir%cectory
59%sextract%csubdir%cectory%cfile.txt
60===DONE===
61