Annotation of embedaddon/php/ext/phar/tests/phar_mount.phpt, revision 1.1.1.2

1.1       misho       1: --TEST--
                      2: Phar: Phar::mount
                      3: --SKIPIF--
                      4: <?php if (!extension_loaded("phar")) die("skip"); ?>
                      5: --INI--
                      6: phar.readonly=0
                      7: --FILE--
                      8: <?php
                      9: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
                     10: $pname = 'phar://' . $fname;
                     11: $fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.tar';
                     12: 
                     13: $a = new Phar($fname);
                     14: $a['index.php'] = '<?php
                     15: Phar::mount("testit", "' . addslashes(__FILE__) . '");
                     16: try {
                     17: Phar::mount("testit", "' . addslashes(__FILE__) . '");
                     18: } catch (Exception $e) {
                     19: echo $e->getMessage() . "\n";
                     20: }
                     21: try {
                     22: Phar::mount("' . addslashes($pname) . '/testit1", "' . addslashes(__FILE__) . '");
                     23: } catch (Exception $e) {
                     24: echo $e->getMessage() . "\n";
                     25: }
                     26: ?>';
                     27: $a->setStub('<?php
                     28: set_include_path("phar://" . __FILE__);
                     29: include "index.php";
                     30: __HALT_COMPILER();');
                     31: Phar::mount($pname . '/testit1', __FILE__);
                     32: include $fname;
                     33: // test copying of a phar with mounted entries
                     34: $b = $a->convertToExecutable(Phar::TAR);
                     35: $b->setStub('<?php
                     36: set_include_path("phar://" . __FILE__);
                     37: include "index.php";
                     38: __HALT_COMPILER();');
                     39: try {
                     40: include $fname2;
                     41: } catch (Exception $e) {
                     42: echo $e->getMessage(),"\n";
                     43: }
                     44: try {
                     45: Phar::mount($pname . '/oops', '/home/oops/../../etc/passwd:');
                     46: } catch (Exception $e) {
                     47: echo $e->getMessage(),"\n";
                     48: }
                     49: Phar::mount($pname . '/testit2', $pname . '/testit1');
                     50: echo substr($a['testit2']->getContent(),0, 50),"\n";
                     51: ?>
                     52: ===DONE===
                     53: --CLEAN--
                     54: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
                     55: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.tar'); ?>
                     56: --EXPECTF--
                     57: Mounting of testit to %sphar_mount.php within phar %sphar_mount.phar.php failed
                     58: Can only mount internal paths within a phar archive, use a relative path instead of "phar://%sphar_mount.phar.php/testit1"
                     59: Mounting of testit to %sphar_mount.php within phar %sphar_mount.phar.tar failed
                     60: Mounting of /oops to /home/oops/../../etc/passwd: within phar %sphar_mount.phar.php failed
                     61: <?php
                     62: $fname = dirname(__FILE__) . '/' . basename(
1.1.1.2 ! misho      63: ===DONE===

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>