0
0
mirror of https://github.com/ezyang/htmlpurifier.git synced 2024-12-22 16:31:53 +00:00

All PHPT tests for now complete! Fix an SPL autoload bug.

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@1564 48356398-32a2-884e-a903-53898d9a118a
This commit is contained in:
Edward Z. Yang 2008-02-18 01:11:17 +00:00
parent 969a027a5b
commit a4abc45505
8 changed files with 38 additions and 88 deletions

6
TODO
View File

@ -16,11 +16,6 @@ UPCOMING RELEASE
---------------- ----------------
IMPORTANT IMPORTANT
- Test HTMLPurifier.auto.php, HTMLPurifier.includes.php, and combinations
of the two. This is related to standalone in tests/index.php. This should use
semi-automated smoketests using PHPT style files (probably should be part
of SimpleTest framework). These tests can be further extended to work for
many of our other smoketests. Follow the documentation!
- Release candidate, because of the major changes - Release candidate, because of the major changes
- Move utility classes for ConfigSchema into HTML Purifier itself: they're - Move utility classes for ConfigSchema into HTML Purifier itself: they're
that important that important
@ -144,6 +139,7 @@ Unknown release (on a scratch-an-itch basis)
- Allow scoped="scoped" attribute in <style> tags; may be troublesome - Allow scoped="scoped" attribute in <style> tags; may be troublesome
because regular CSS has no way of uniquely identifying nodes, so we'd because regular CSS has no way of uniquely identifying nodes, so we'd
have to generate IDs have to generate IDs
- Time PHPT tests
Requested Requested

View File

@ -6,7 +6,7 @@
*/ */
if (function_exists('spl_autoload_register')) { if (function_exists('spl_autoload_register')) {
spl_autoload_register(array('HTMLPurifier_Bootstrap', 'autoload')); HTMLPurifier_Bootstrap::registerAutoload();
if (function_exists('__autoload')) { if (function_exists('__autoload')) {
// Be polite and ensure that userland autoload gets retained // Be polite and ensure that userland autoload gets retained
spl_autoload_register('__autoload'); spl_autoload_register('__autoload');

View File

@ -55,4 +55,18 @@ class HTMLPurifier_Bootstrap
return str_replace('_', '/', $class) . '.php'; return str_replace('_', '/', $class) . '.php';
} }
/**
* "Pre-registers" our autoloader on the SPL stack.
*/
public static function registerAutoload() {
$autoload = array('HTMLPurifier_Bootstrap', 'autoload');
if ( ($funcs = spl_autoload_functions()) === false ) {
spl_autoload_register($autoload);
} else {
foreach ($funcs as $func) spl_autoload_unregister($func);
spl_autoload_register($autoload);
foreach ($funcs as $func) spl_autoload_register($func);
}
}
} }

View File

@ -1,40 +0,0 @@
<?php
set_include_path('../library/' . PATH_SEPARATOR . get_include_path() );
header('Content-type: text/html; charset=UTF-8');
echo '<?xml version="1.0" encoding="UTF-8" ?>';
function printb($bool) {
echo '<strong>' . ($bool ? 'Pass' : 'Fail') . '</strong>';
}
function printEval($code) {
echo '<pre>' . htmlspecialchars($code) . '</pre>';
eval($code);
}
?><!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>HTML Purifier Function Include Smoketest</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>HTML Purifier Function Include Smoketest</h1>
<p>Tests whether or not the includes are done properly and whether or
not the library is lazy loaded.</p>
<?php printEval("require_once 'HTMLPurifier.func.php';"); ?>
<p>HTMLPurifier class doesn't exist: <?php printb(!class_exists('HTMLPurifier')); ?></li></p>
<?php printEval("HTMLPurifier('foobar');"); ?>
<p>HTMLPurifier class exists: <?php printb(class_exists('HTMLPurifier')); ?></li></p>
</body>
</html>

View File

@ -1,40 +0,0 @@
<?php
// this file is encoded in UTF-8, please don't let your editor mangle it
require_once 'common.php';
echo '<?xml version="1.0" encoding="UTF-8" ?>';
?><!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>HTML Purifier UTF-8 Smoketest</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>HTML Purifier UTF-8 Smoketest</h1>
<?php
$purifier = new HTMLPurifier();
$string = '
<ul>
<li><b>Chinese</b> - 太極拳</li>
<li><b>Russian</b> - ЊЎЖ</li>
<li><b>Arabic</b> - لمنس</li>
</ul>
';
?>
<h2>Raw</h2>
<?php echo $string; ?>
<h2>Purified</h2>
<?php echo $purifier->purify($string); ?>
<h2>Analysis</h2>
<p>The content in <strong>Raw</strong> should be equivalent to the content
in <strong>Purified</strong>. If <strong>Purified</strong> is mangled, there
is likely trouble a-brewing in the library. If
both are mangled, check to see that this file was not corrupted.</p>
</body>
</html>

View File

@ -0,0 +1,9 @@
--TEST--
HTMLPurifier.func.php test
--FILE--
<?php
require '../library/HTMLPurifier.auto.php';
require 'HTMLPurifier.func.php';
echo HTMLPurifier('<b>Salsa!');
--EXPECT--
<b>Salsa!</b>

View File

@ -1,5 +1,5 @@
--TEST-- --TEST--
HTMLPurifier.auto.php using spl_autoload_register with userland __autoload loading test HTMLPurifier.auto.php using spl_autoload_register with user registration loading test
--SKIPIF-- --SKIPIF--
<?php <?php
if (!function_exists('spl_autoload_register')) { if (!function_exists('spl_autoload_register')) {
@ -7,10 +7,12 @@ if (!function_exists('spl_autoload_register')) {
} }
--FILE-- --FILE--
<?php <?php
function __autoload($class) { function my_autoload($class) {
echo "Autoloading $class..." . PHP_EOL; echo "Autoloading $class..." . PHP_EOL;
eval("class $class {}"); eval("class $class {}");
return true;
} }
spl_autoload_register('my_autoload');
require '../library/HTMLPurifier.auto.php'; require '../library/HTMLPurifier.auto.php';
require 'HTMLPurifier/PHPT/loading/_autoload.inc'; require 'HTMLPurifier/PHPT/loading/_autoload.inc';

View File

@ -0,0 +1,9 @@
--TEST--
UTF-8 smoketest
--FILE--
<?php
require '../library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
echo $purifier->purify('太極拳, ЊЎЖ, لمنس');
--EXPECT--
太極拳, ЊЎЖ, لمنس