1
0
mirror of https://github.com/php/php-src.git synced 2026-04-27 18:23:26 +02:00

fix front controller tests (requires patch to run-tests.php posted to internals a little while ago)

allow phars to have extension .php as last resort
fix phar-based phars for MIME_OTHER type
This commit is contained in:
Greg Beaver
2008-01-05 03:41:43 +00:00
parent 4c7c6d1ef4
commit 653dc9e8ce
7 changed files with 33 additions and 74 deletions
+3
View File
@@ -1990,6 +1990,9 @@ int phar_detect_phar_fname_ext(const char *filename, int check_length, char **ex
} else if ((pos_p = strstr(filename, ".phar")) != NULL) {
*ext_str = pos_p;
*ext_len = 5;
} else if ((pos_p = strstr(filename, ".php")) != NULL) {
*ext_str = pos_p;
*ext_len = 4;
} else {
/* We have an alias with no extension, so locate the first / and fail */
*ext_str = strstr(filename, "/");
+3
View File
@@ -222,6 +222,9 @@ static int phar_file_action(phar_entry_data *phar, char *mime_type, int code, ch
phar->fp = phar->internal_file->fp;
if (phar->internal_file->fp == phar->phar->fp) {
phar->zero = phar->internal_file->offset_within_phar;
if (!phar->is_tar && !phar->is_zip) {
phar->zero += phar->phar->internal_file_start;
}
}
}
php_stream_seek(phar->fp, phar->zero, SEEK_SET);
Binary file not shown.
+12
View File
@@ -0,0 +1,12 @@
<?php
@unlink(dirname(__FILE__) . '/frontcontroller.phar');
$a = new Phar(dirname(__FILE__) . '/frontcontroller.phar');
$a['a.php'] = 'hio';
$a['a.jpg'] = 'hio';
$a['a.phps'] = '<?php function hio(){}';
$a->setStub('<?php
Phar::webPhar();
echo "oops did not run\n";
var_dump($_ENV, $_SERVER);
__HALT_COMPILER();');
?>
+4 -25
View File
@@ -2,32 +2,11 @@
Phar front controller
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
--INI--
phar.require_hash=0
phar.readonly=0
--ENV--
REQUEST_URI=/frontcontroller1.phar.php/a.jpg
--FILE--
<?php
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$a = new Phar($fname);
$a['a.jpg'] = 'hio';
$a->setStub('<?php
Phar::webPhar();
__HALT_COMPILER();');
$_SERVER['REQUEST_URI'] = '/' . basename(__FILE__, '.php') . '.phar.php/a.jpg';
include $fname;
?>
===DONE===
--CLEAN--
<?php
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phartmp.php');
__HALT_COMPILER();
?>
SCRIPT_NAME=/frontcontroller1.php/a.jpg
REQUEST_URI=/frontcontroller1.php/a.jpg
--FILE_EXTERNAL--
frontcontroller.phar
--EXPECTHEADERS--
Content-type: image/jpeg
Content-length: 3
+6 -25
View File
@@ -1,31 +1,12 @@
--TEST--
Phar front controller php
Phar front controller PHP test
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
--INI--
phar.require_hash=0
phar.readonly=0
--FILE--
<?php
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$a = new Phar($fname);
$a['a.php'] = 'hio';
$a->setStub('<?php
Phar::webPhar();
__HALT_COMPILER();');
$_SERVER['REQUEST_URI'] = '/' . basename(__FILE__, '.php') . '.phar.php/a.php';
include $fname;
?>
===DONE===
--CLEAN--
<?php
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phartmp.php');
__HALT_COMPILER();
?>
--ENV--
SCRIPT_NAME=/frontcontroller2.php/a.php
REQUEST_URI=/frontcontroller2.php/a.php
--FILE_EXTERNAL--
frontcontroller.phar
--EXPECTHEADERS--
Content-type: text/html
--EXPECT--
+5 -24
View File
@@ -2,30 +2,11 @@
Phar front controller phps
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
--INI--
phar.require_hash=0
phar.readonly=0
--FILE--
<?php
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$a = new Phar($fname);
$a['a.phps'] = '<?php function hio(){}';
$a->setStub('<?php
Phar::webPhar();
__HALT_COMPILER();');
$_SERVER['REQUEST_URI'] = '/' . basename(__FILE__, '.php') . '.phar.php/a.phps';
include $fname;
?>
===DONE===
--CLEAN--
<?php
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phartmp.php');
__HALT_COMPILER();
?>
--ENV--
SCRIPT_NAME=/frontcontroller3.php/a.phps
REQUEST_URI=/frontcontroller3.php/a.phps
--FILE_EXTERNAL--
frontcontroller.phar
--EXPECTHEADERS--
Content-type: text/html
--EXPECT--