0
0
mirror of https://github.com/ezyang/htmlpurifier.git synced 2024-09-19 10:45:18 +00:00

[2.1.2] Fix problems with standalone distribution, change smoketests so that it's easier to test the standalone.

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@1388 48356398-32a2-884e-a903-53898d9a118a
This commit is contained in:
Edward Z. Yang 2007-08-19 21:38:19 +00:00
parent 6f6fcbc354
commit d75c695994
4 changed files with 22 additions and 10 deletions

1
NEWS
View File

@ -24,6 +24,7 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier
default for tables in most browsers. Thanks Brett Zamir for pointing default for tables in most browsers. Thanks Brett Zamir for pointing
this out. this out.
- Fix validation errors in configuration form - Fix validation errors in configuration form
- Hammer out a bunch of edge-case bugs in the standalone distribution
. Unit test refactoring for one logical test per test function . Unit test refactoring for one logical test per test function
. Config and context parameters in ComplexHarness deprecated: instead, edit . Config and context parameters in ComplexHarness deprecated: instead, edit
the $config and $context member variables the $config and $context member variables

View File

@ -84,7 +84,7 @@ function mkdir_deep($folder) {
function copyr($source, $dest) { function copyr($source, $dest) {
// Simple copy for a file // Simple copy for a file
if (is_file($source)) { if (is_file($source)) {
return copy($source, $dest); return copy_and_remove_includes($source, $dest);
} }
// Make destination directory // Make destination directory
if (!is_dir($dest)) { if (!is_dir($dest)) {
@ -158,7 +158,14 @@ function make_dir_standalone($dir) {
function make_file_standalone($file) { function make_file_standalone($file) {
mkdir_deep('standalone/' . dirname($file)); mkdir_deep('standalone/' . dirname($file));
return copy($file, 'standalone/' . $file); copy_and_remove_includes($file, 'standalone/' . $file);
return true;
}
function copy_and_remove_includes($file, $sfile) {
$contents = file_get_contents($file);
if (strrchr($file, '.') === '.php') $contents = replace_includes($contents);
return file_put_contents($sfile, $contents);
} }
/** /**
@ -168,7 +175,7 @@ function make_file_standalone($file) {
function replace_includes_callback($matches) { function replace_includes_callback($matches) {
$file = $matches[1]; $file = $matches[1];
// PHP 5 only file // PHP 5 only file
if ($file == 'HTMLPurifier/Lexer/DOMLex.php') { if ($file == 'HTMLPurifier/Lexer/DOMLex.php' || $file == 'HTMLPurifier/Printer.php') {
return $matches[0]; return $matches[0];
} }
if (isset($GLOBALS['loaded'][$file])) return ''; if (isset($GLOBALS['loaded'][$file])) return '';
@ -196,12 +203,12 @@ rmdirr('standalone'); // ensure a clean copy
mkdir_deep('standalone/HTMLPurifier/DefinitionCache/Serializer'); mkdir_deep('standalone/HTMLPurifier/DefinitionCache/Serializer');
make_dir_standalone('HTMLPurifier/EntityLookup'); make_dir_standalone('HTMLPurifier/EntityLookup');
make_dir_standalone('HTMLPurifier/Language'); make_dir_standalone('HTMLPurifier/Language');
make_file_standalone('HTMLPurifier/Printer/ConfigForm.js'); make_file_standalone('HTMLPurifier/Printer.php');
make_file_standalone('HTMLPurifier/Printer/ConfigForm.css'); make_dir_standalone('HTMLPurifier/Printer');
make_dir_standalone('HTMLPurifier/URIScheme'); make_dir_standalone('HTMLPurifier/URIScheme');
// PHP 5 only file make_dir_standalone('HTMLPurifier/Filter');
mkdir_deep('standalone/HTMLPurifier/Lexer'); // PHP 5 only files
make_file_standalone('HTMLPurifier/Lexer/DOMLex.php'); make_file_standalone('HTMLPurifier/Lexer/DOMLex.php');
make_file_standalone('HTMLPurifier/TokenFactory.php'); make_file_standalone('HTMLPurifier/Lexer/PH5P.php');
echo ' done!' . PHP_EOL; echo ' done!' . PHP_EOL;

View File

@ -31,7 +31,7 @@ while (false !== ($filename = readdir($dh))) {
if ($filename == 'all.php') continue; if ($filename == 'all.php') continue;
if ($filename == 'testSchema.php') continue; if ($filename == 'testSchema.php') continue;
?> ?>
<iframe src="<?php echo escapeHTML($filename); ?>"></iframe> <iframe src="<?php echo escapeHTML($filename); if (isset($_GET['standalone'])) {echo '?standalone';} ?>"></iframe>
<?php <?php
} }

View File

@ -2,7 +2,11 @@
header('Content-type: text/html; charset=UTF-8'); header('Content-type: text/html; charset=UTF-8');
require_once '../library/HTMLPurifier.auto.php'; if (!isset($_GET['standalone'])) {
require_once '../library/HTMLPurifier.auto.php';
} else {
require_once '../library/HTMLPurifier.standalone.php';
}
error_reporting(E_ALL); error_reporting(E_ALL);
function escapeHTML($string) { function escapeHTML($string) {