0
0
mirror of https://github.com/ezyang/htmlpurifier.git synced 2024-12-22 08:21:52 +00:00

[1.4.0] Added convenient single test selector form on test runner

- Also fixed includes in test files
- Updated TODO with CSS plans

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@659 48356398-32a2-884e-a903-53898d9a118a
This commit is contained in:
Edward Z. Yang 2007-01-19 23:02:28 +00:00
parent 0dd866cc15
commit 9b375fdfb8
15 changed files with 63 additions and 5 deletions

1
NEWS
View File

@ -19,6 +19,7 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier
! Added %Core.EscapeNonASCIICharacters to workaround loss of Unicode ! Added %Core.EscapeNonASCIICharacters to workaround loss of Unicode
characters while %Core.Encoding is set to a non-UTF-8 encoding. characters while %Core.Encoding is set to a non-UTF-8 encoding.
. Implemented AttrDef_CSSURI for url(http://google.com) style declarations . Implemented AttrDef_CSSURI for url(http://google.com) style declarations
. Added convenient single test selector form on test runner
1.3.3, unknown release date, likely to be dropped 1.3.3, unknown release date, likely to be dropped
! Moved SLOW to docs/enduser-slow.html and added code examples ! Moved SLOW to docs/enduser-slow.html and added code examples

2
TODO
View File

@ -36,6 +36,8 @@ TODO List
- Friendly strict handling of <address> (block -> <br>) - Friendly strict handling of <address> (block -> <br>)
2.0 release 2.0 release
# Legit token based CSS parsing (will require revamping almost every
AttrDef class)
# Formatters for plaintext (COMPLEX) # Formatters for plaintext (COMPLEX)
- Auto-paragraphing (be sure to leverage fact that we know when things - Auto-paragraphing (be sure to leverage fact that we know when things
shouldn't be paragraphed, such as lists and tables). shouldn't be paragraphed, such as lists and tables).

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrDef/Border.php'; require_once 'HTMLPurifier/AttrDef/Border.php';
require_once 'HTMLPurifier/AttrDef/PixelsTest.php';
class HTMLPurifier_AttrDef_BorderTest extends HTMLPurifier_AttrDef_PixelsTest class HTMLPurifier_AttrDef_BorderTest extends HTMLPurifier_AttrDef_PixelsTest
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrDef/CSSLength.php'; require_once 'HTMLPurifier/AttrDef/CSSLength.php';
require_once 'HTMLPurifier/AttrDefHarness.php';
class HTMLPurifier_AttrDef_CSSLengthTest extends HTMLPurifier_AttrDefHarness class HTMLPurifier_AttrDef_CSSLengthTest extends HTMLPurifier_AttrDefHarness
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrDef/Color.php'; require_once 'HTMLPurifier/AttrDef/Color.php';
require_once 'HTMLPurifier/AttrDefHarness.php';
class HTMLPurifier_AttrDef_ColorTest extends HTMLPurifier_AttrDefHarness class HTMLPurifier_AttrDef_ColorTest extends HTMLPurifier_AttrDefHarness
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrDef/Composite.php'; require_once 'HTMLPurifier/AttrDef/Composite.php';
require_once 'HTMLPurifier/AttrDefHarness.php';
class HTMLPurifier_AttrDef_Composite_Testable extends class HTMLPurifier_AttrDef_Composite_Testable extends
HTMLPurifier_AttrDef_Composite HTMLPurifier_AttrDef_Composite

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrDef/Email.php'; require_once 'HTMLPurifier/AttrDef/Email.php';
require_once 'HTMLPurifier/AttrDefHarness.php';
class HTMLPurifier_AttrDef_EmailHarness extends HTMLPurifier_AttrDefHarness class HTMLPurifier_AttrDef_EmailHarness extends HTMLPurifier_AttrDefHarness
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrDef/Integer.php'; require_once 'HTMLPurifier/AttrDef/Integer.php';
require_once 'HTMLPurifier/AttrDefHarness.php';
class HTMLPurifier_AttrDef_IntegerTest extends HTMLPurifier_AttrDefHarness class HTMLPurifier_AttrDef_IntegerTest extends HTMLPurifier_AttrDefHarness
{ {

View File

@ -1,7 +1,10 @@
<?php <?php
require_once 'HTMLPurifier/AttrDef/Integer.php';
require_once 'HTMLPurifier/AttrDef/Multiple.php'; require_once 'HTMLPurifier/AttrDef/Multiple.php';
require_once 'HTMLPurifier/AttrDefHarness.php';
// borrowed for the sakes of this test
require_once 'HTMLPurifier/AttrDef/Integer.php';
class HTMLPurifier_AttrDef_MultipleTest extends HTMLPurifier_AttrDefHarness class HTMLPurifier_AttrDef_MultipleTest extends HTMLPurifier_AttrDefHarness
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrDef/Number.php'; require_once 'HTMLPurifier/AttrDef/Number.php';
require_once 'HTMLPurifier/AttrDefHarness.php';
class HTMLPurifier_AttrDef_NumberTest extends HTMLPurifier_AttrDefHarness class HTMLPurifier_AttrDef_NumberTest extends HTMLPurifier_AttrDefHarness
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrDef/Percentage.php'; require_once 'HTMLPurifier/AttrDef/Percentage.php';
require_once 'HTMLPurifier/AttrDefHarness.php';
class HTMLPurifier_AttrDef_PercentageTest extends HTMLPurifier_AttrDefHarness class HTMLPurifier_AttrDef_PercentageTest extends HTMLPurifier_AttrDefHarness
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrTransform/BdoDir.php'; require_once 'HTMLPurifier/AttrTransform/BdoDir.php';
require_once 'HTMLPurifier/AttrTransformHarness.php';
class HTMLPurifier_AttrTransform_BdoDirTest extends HTMLPurifier_AttrTransformHarness class HTMLPurifier_AttrTransform_BdoDirTest extends HTMLPurifier_AttrTransformHarness
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrTransform/ImgRequired.php'; require_once 'HTMLPurifier/AttrTransform/ImgRequired.php';
require_once 'HTMLPurifier/AttrTransformHarness.php';
class HTMLPurifier_AttrTransform_ImgRequiredTest extends HTMLPurifier_AttrTransformHarness class HTMLPurifier_AttrTransform_ImgRequiredTest extends HTMLPurifier_AttrTransformHarness
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once 'HTMLPurifier/AttrTransform/TextAlign.php'; require_once 'HTMLPurifier/AttrTransform/TextAlign.php';
require_once 'HTMLPurifier/AttrTransformHarness.php';
class HTMLPurifier_AttrTransform_TextAlignTest extends HTMLPurifier_AttrTransformHarness class HTMLPurifier_AttrTransform_TextAlignTest extends HTMLPurifier_AttrTransformHarness
{ {

View File

@ -8,6 +8,8 @@ error_reporting(E_ALL);
// wishlist: automated calling of this file from multiple PHP versions so we // wishlist: automated calling of this file from multiple PHP versions so we
// don't have to constantly switch around // don't have to constantly switch around
$GLOBALS['HTMLPurifierTest'] = array();
// configuration // configuration
$GLOBALS['HTMLPurifierTest']['PEAR'] = false; // do PEAR tests $GLOBALS['HTMLPurifierTest']['PEAR'] = false; // do PEAR tests
@ -106,6 +108,9 @@ if (version_compare(PHP_VERSION, '5', '>=')) {
$test_files[] = 'TokenFactoryTest.php'; $test_files[] = 'TokenFactoryTest.php';
} }
sort($test_files);
$GLOBALS['HTMLPurifierTest']['Files'] = $test_files;
$test_file_lookup = array_flip($test_files); $test_file_lookup = array_flip($test_files);
function htmlpurifier_path2class($path) { function htmlpurifier_path2class($path) {
@ -119,12 +124,48 @@ function htmlpurifier_path2class($path) {
return $temp; return $temp;
} }
// we can't use addTestFile because SimpleTest chokes on E_STRICT warnings // use a customized reporter with some helpful UI widgets
if (isset($_GET['f']) && isset($test_file_lookup[$_GET['f']])) { if (isset($_GET['f']) && isset($test_file_lookup[$_GET['f']])) {
$GLOBALS['HTMLPurifierTest']['File'] = $_GET['f'];
} else {
$GLOBALS['HTMLPurifierTest']['File'] = false;
}
class HTMLPurifier_SimpleTest_Reporter extends HTMLReporter
{
// execute only one test function paintHeader($test_name) {
$test_file = $_GET['f']; parent::paintHeader($test_name);
$test_file = $GLOBALS['HTMLPurifierTest']['File'];
?>
<form action="" method="get" id="select">
<select name="f">
<option value="" style="font-weight:bold;"<?php if(!$test_file) {echo ' selected';} ?>>All Tests</option>
<?php foreach($GLOBALS['HTMLPurifierTest']['Files'] as $file) { ?>
<option value="<?php echo $file ?>"<?php
if ($test_file == $file) echo ' selected';
?>><?php echo $file ?></option>
<?php } ?>
</select>
<input type="submit" value="Go">
</form>
<?php
flush();
}
function _getCss() {
$css = parent::_getCss();
$css .= '
#select {position:absolute;top:0.2em;right:0.2em;}
';
return $css;
}
}
// we can't use addTestFile because SimpleTest chokes on E_STRICT warnings
if ($test_file = $GLOBALS['HTMLPurifierTest']['File']) {
$test = new GroupTest($test_file . ' - HTML Purifier'); $test = new GroupTest($test_file . ' - HTML Purifier');
$path = 'HTMLPurifier/' . $test_file; $path = 'HTMLPurifier/' . $test_file;
@ -144,7 +185,7 @@ if (isset($_GET['f']) && isset($test_file_lookup[$_GET['f']])) {
} }
if (SimpleReporter::inCli()) $reporter = new TextReporter(); if (SimpleReporter::inCli()) $reporter = new TextReporter();
else $reporter = new HTMLReporter('UTF-8'); else $reporter = new HTMLPurifier_SimpleTest_Reporter('UTF-8');
$test->run($reporter); $test->run($reporter);