Annotation of embedaddon/php/ext/phar/tests/phar_unlinkarchive.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Phar::unlinkArchive()
! 3: --SKIPIF--
! 4: <?php if (!extension_loaded("phar")) die("skip"); ?>
! 5: --INI--
! 6: phar.require_hash=0
! 7: phar.readonly=0
! 8: --FILE--
! 9: <?php
! 10:
! 11: try {
! 12: Phar::unlinkArchive("");
! 13: } catch (Exception $e) {
! 14: echo $e->getMessage(),"\n";
! 15: }
! 16:
! 17: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar';
! 18: $pdname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.tar';
! 19:
! 20: try {
! 21: Phar::unlinkArchive($fname);
! 22: } catch (Exception $e) {
! 23: echo $e->getMessage(),"\n";
! 24: }
! 25: file_put_contents($pdname, 'blahblah');
! 26: try {
! 27: Phar::unlinkArchive($pdname);
! 28: } catch (Exception $e) {
! 29: echo $e->getMessage(),"\n";
! 30: }
! 31: Phar::unlinkArchive(array());
! 32:
! 33: $pname = 'phar://' . $fname;
! 34: $fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.zip';
! 35: $fname3 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.zip';
! 36: $stub = '<?php echo "first stub\n"; __HALT_COMPILER(); ?>';
! 37: $file = $stub;
! 38:
! 39: $files = array();
! 40: $files['a'] = 'a';
! 41: $files['b'] = 'b';
! 42: $files['c'] = 'c';
! 43:
! 44: include 'files/phar_test.inc';
! 45:
! 46: $phar = new Phar($fname);
! 47: var_dump($phar->isFileFormat(Phar::ZIP));
! 48: var_dump($phar->getStub());
! 49: try {
! 50: Phar::unlinkArchive($fname);
! 51: } catch (Exception $e) {
! 52: echo $e->getMessage(),"\n";
! 53: }
! 54: $phar = $phar->convertToExecutable(Phar::ZIP);
! 55: var_dump($phar->isFileFormat(Phar::ZIP));
! 56: var_dump($phar->getStub());
! 57:
! 58: copy($fname2, $fname3);
! 59:
! 60: $phar = new Phar($fname3);
! 61: var_dump($phar->isFileFormat(Phar::ZIP));
! 62: var_dump($phar->getStub());
! 63:
! 64: Phar::unlinkArchive($fname);
! 65: var_dump(file_exists($fname));
! 66: $phar = new Phar($fname);
! 67: var_dump(count($phar));
! 68: $phar['evil.php'] = '<?php
! 69: try {
! 70: Phar::unlinkArchive(Phar::running(false));
! 71: } catch (Exception $e) {echo $e->getMessage(),"\n";}
! 72: var_dump(Phar::running(false));
! 73: include Phar::running(true) . "/another.php";
! 74: ?>';
! 75: $phar['another.php'] = "hi\n";
! 76: unset($phar);
! 77: include $pname . '/evil.php';
! 78: ?>
! 79: ===DONE===
! 80: --CLEAN--
! 81: <?php
! 82: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.tar');
! 83: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar');
! 84: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.2.phar.zip');
! 85: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.zip');
! 86: __HALT_COMPILER();
! 87: ?>
! 88: --EXPECTF--
! 89: Unknown phar archive ""
! 90: Unknown phar archive "%sphar_unlinkarchive.phar"
! 91: Unknown phar archive "%sphar_unlinkarchive.phar.tar": internal corruption of phar "%sphar_unlinkarchive.phar.tar" (truncated entry)
! 92:
! 93: Warning: Phar::unlinkArchive() expects parameter 1 to be %string, array given in %sphar_unlinkarchive.php on line %d
! 94: bool(false)
! 95: string(48) "<?php echo "first stub\n"; __HALT_COMPILER(); ?>"
! 96: phar archive "%sphar_unlinkarchive.phar" has open file handles or objects. fclose() all file handles, and unset() all objects prior to calling unlinkArchive()
! 97: bool(true)
! 98: string(60) "<?php // zip-based phar archive stub file
! 99: __HALT_COMPILER();"
! 100: bool(true)
! 101: string(60) "<?php // zip-based phar archive stub file
! 102: __HALT_COMPILER();"
! 103: bool(false)
! 104: int(0)
! 105: phar archive "%sphar_unlinkarchive.phar" cannot be unlinked from within itself
! 106: string(%d) "%sphar_unlinkarchive.phar"
! 107: hi
! 108: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>