Annotation of embedaddon/php/ext/phar/tests/phar_offset_check.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Phar: disallow stub and alias setting via offset*() methods
! 3: --SKIPIF--
! 4: <?php if (!extension_loaded("phar")) die("skip"); ?>
! 5: <?php if (!extension_loaded("spl")) die("skip SPL not available"); ?>
! 6: --INI--
! 7: phar.readonly=0
! 8: phar.require_hash=1
! 9: --FILE--
! 10: <?php
! 11:
! 12: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
! 13: $pname = 'phar://'.$fname;
! 14:
! 15: $phar = new Phar($fname);
! 16: $phar->setDefaultStub();
! 17: $phar->setAlias('susan');
! 18: $phar['a.txt'] = "first file\n";
! 19: $phar['b.txt'] = "second file\n";
! 20:
! 21: try {
! 22: $phar->offsetGet('.phar/stub.php');
! 23: } catch (Exception $e) {
! 24: echo $e->getMessage()."\n";
! 25: }
! 26:
! 27: try {
! 28: $phar->offsetGet('.phar/alias.txt');
! 29: } catch (Exception $e) {
! 30: echo $e->getMessage()."\n";
! 31: }
! 32:
! 33: try {
! 34: $phar->offsetSet('.phar/stub.php', '<?php __HALT_COMPILER(); ?>');
! 35: } catch (Exception $e) {
! 36: echo $e->getMessage()."\n";
! 37: }
! 38:
! 39: var_dump(strlen($phar->getStub()));
! 40:
! 41: try {
! 42: $phar->offsetUnset('.phar/stub.php');
! 43: } catch (Exception $e) {
! 44: echo $e->getMessage()."\n";
! 45: }
! 46:
! 47: var_dump(strlen($phar->getStub()));
! 48:
! 49: try {
! 50: $phar->offsetSet('.phar/alias.txt', 'dolly');
! 51: } catch (Exception $e) {
! 52: echo $e->getMessage()."\n";
! 53: }
! 54:
! 55: var_dump($phar->getAlias());
! 56:
! 57: try {
! 58: $phar->offsetUnset('.phar/alias.txt');
! 59: } catch (Exception $e) {
! 60: echo $e->getMessage()."\n";
! 61: }
! 62:
! 63: var_dump($phar->getAlias());
! 64:
! 65: ?>
! 66: ===DONE===
! 67: --CLEAN--
! 68: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
! 69: --EXPECTF--
! 70: Entry .phar/stub.php does not exist
! 71: Entry .phar/alias.txt does not exist
! 72: Cannot set stub ".phar/stub.php" directly in phar "%sphar_offset_check.phar.php", use setStub
! 73: int(6685)
! 74: int(6685)
! 75: Cannot set alias ".phar/alias.txt" directly in phar "%sphar_offset_check.phar.php", use setAlias
! 76: string(5) "susan"
! 77: string(5) "susan"
! 78: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>