Annotation of embedaddon/php/ext/phar/tests/mounteddirU.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Phar: mounted manifest directory test
! 3: --SKIPIF--
! 4: <?php
! 5: if (!extension_loaded("phar")) die("skip");
! 6: if (version_compare(PHP_VERSION, "6.0", "<")) die("skip Unicode support required");
! 7: ?>
! 8: --INI--
! 9: phar.readonly=0
! 10: --FILE--
! 11: <?php
! 12: $fname = dirname(__FILE__) . '/tempmanifest1.phar.php';
! 13: $pname = 'phar://' . $fname;
! 14:
! 15: $a = new Phar($fname);
! 16: $a['index.php'] = '<?php
! 17: Phar::mount("testit", dirname(Phar::running(0)) . "/testit");
! 18: echo file_get_contents(Phar::running(1) . "/testit/extfile.php"), "\n";
! 19: echo file_get_contents(Phar::running(1) . "/testit/directory"), "\n";
! 20: echo file_get_contents(Phar::running(1) . "/testit/existing.txt"), "\n";
! 21: include "testit/extfile.php";
! 22: include "testit/extfile2.php";
! 23: try {
! 24: Phar::mount(".phar/stub.php", dirname(Phar::running(0)) . "/testit/extfile.php");
! 25: } catch (Exception $e) {
! 26: echo $e->getMessage(),"\n";
! 27: }
! 28: ?>';
! 29: $a['testit/existing.txt'] = 'oops';
! 30: $a->setStub('<?php
! 31: set_include_path("phar://" . __FILE__);
! 32: include "index.php";
! 33: __HALT_COMPILER();');
! 34: unset($a);
! 35: mkdir(dirname(__FILE__) . '/testit');
! 36: mkdir(dirname(__FILE__) . '/testit/directory');
! 37: file_put_contents(dirname(__FILE__) . '/testit/extfile.php', '<?php
! 38: var_dump(__FILE__);
! 39: ?>');
! 40: file_put_contents(dirname(__FILE__) . '/testit/extfile2.php', '<?php
! 41: var_dump(__FILE__);
! 42: ?>');
! 43: include dirname(__FILE__) . '/testit/extfile.php';
! 44: include $fname;
! 45:
! 46: $a = opendir($pname . '/testit');
! 47: $out = array();
! 48: while (false !== ($b = readdir($a))) {
! 49: $out[] = $b;
! 50: }
! 51: sort($out);
! 52: foreach ($out as $b) {
! 53: echo "$b\n";
! 54: }
! 55: $out = array();
! 56: foreach (new Phar($pname . '/testit') as $b) {
! 57: $out[] = $b->getPathName();
! 58: }
! 59: sort($out);
! 60: foreach ($out as $b) {
! 61: echo "$b\n";
! 62: }
! 63: try {
! 64: Phar::mount($pname . '/testit', 'another\\..\\mistake');
! 65: } catch (Exception $e) {
! 66: echo $e->getMessage(), "\n";
! 67: }
! 68: try {
! 69: Phar::mount($pname . '/notfound', dirname(__FILE__) . '/this/does/not/exist');
! 70: } catch (Exception $e) {
! 71: echo $e->getMessage(), "\n";
! 72: }
! 73: try {
! 74: Phar::mount($pname . '/testit', dirname(__FILE__));
! 75: } catch (Exception $e) {
! 76: echo $e->getMessage(), "\n";
! 77: }
! 78: try {
! 79: Phar::mount($pname . '/testit/extfile.php', dirname(__FILE__));
! 80: } catch (Exception $e) {
! 81: echo $e->getMessage(), "\n";
! 82: }
! 83: ?>
! 84: ===DONE===
! 85: --CLEAN--
! 86: <?php
! 87: @unlink(dirname(__FILE__) . '/tempmanifest1.phar.php');
! 88: @unlink(dirname(__FILE__) . '/testit/extfile.php');
! 89: @unlink(dirname(__FILE__) . '/testit/extfile2.php');
! 90: @rmdir(dirname(__FILE__) . '/testit/directory');
! 91: @rmdir(dirname(__FILE__) . '/testit');
! 92:
! 93: ?>
! 94: --EXPECTF--
! 95: unicode(%d) "%sextfile.php"
! 96: <?php
! 97: var_dump(__FILE__);
! 98: ?>
! 99:
! 100: Warning: file_get_contents(phar://%stempmanifest1.phar.php/testit/directory): failed to open stream: phar error: path "testit/directory" is a directory in phar://%stempmanifest1.phar.php/index.php on line %d
! 101:
! 102: oops
! 103: unicode(%d) "phar://%sextfile.php"
! 104: unicode(%d) "phar://%sextfile2.php"
! 105: Mounting of .phar/stub.php to %sextfile.php within phar %stests/tempmanifest1.phar.php failed
! 106: .
! 107: ..
! 108: directory
! 109: extfile.php
! 110: extfile2.php
! 111: phar://%stempmanifest1.phar.php/testit%cdirectory
! 112: phar://%stempmanifest1.phar.php/testit%cextfile.php
! 113: phar://%stempmanifest1.phar.php/testit%cextfile2.php
! 114: Mounting of /testit to another\..\mistake within phar %stempmanifest1.phar.php failed
! 115: Mounting of /notfound to %stests/this/does/not/exist within phar %stempmanifest1.phar.php failed
! 116: Mounting of /testit to %stests within phar %stests/tempmanifest1.phar.php failed
! 117: Mounting of /testit/extfile.php to %stests within phar %stests/tempmanifest1.phar.php failed
! 118: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>