mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2024-11-09 15:28:40 +00:00
[2.1.3]
- Work around unnecessary DOMElement type-cast in PH5P that caused errors in PHP 5.1 - Work around PHP 4 SimpleTest lack-of-error complaining for one-time-only HTMLDefinition errors, this may indicate problems with error-collecting facilities in PHP 5 - Make ErrorCollectorEMock work in both PHP 4 and PHP 5 . tests/multitest.php allows you to test multiple versions by running tests/index.php through multiple interpreters using `phpv` shell script (you must provide this script!) . Minor cosmetic change to flush-definition-cache.php: trailing newline is outputted . Maintenance script for generating PH5P patch added, original PH5P source file also added under version control . Full unit test runner script title made more descriptive with PHP version git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@1440 48356398-32a2-884e-a903-53898d9a118a
This commit is contained in:
parent
8cd1806ec8
commit
bb08f679f0
14
NEWS
14
NEWS
@ -10,6 +10,9 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier
|
||||
==========================
|
||||
|
||||
2.1.3, unknown release date
|
||||
! tests/multitest.php allows you to test multiple versions by running
|
||||
tests/index.php through multiple interpreters using `phpv` shell
|
||||
script (you must provide this script!)
|
||||
- Fixed poor include ordering for Email URI AttrDefs, causes fatal errors
|
||||
on some systems.
|
||||
- Injector algorithm further refined: off-by-one error regarding skip
|
||||
@ -30,6 +33,12 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier
|
||||
- Phorum mod's HTML Purifier help message expanded (unreleased elsewhere)
|
||||
- Fix a theoretical class of infinite loops from DirectLex reported
|
||||
by Nate Abele
|
||||
- Work around unnecessary DOMElement type-cast in PH5P that caused errors
|
||||
in PHP 5.1
|
||||
- Work around PHP 4 SimpleTest lack-of-error complaining for one-time-only
|
||||
HTMLDefinition errors, this may indicate problems with error-collecting
|
||||
facilities in PHP 5
|
||||
- Make ErrorCollectorEMock work in both PHP 4 and PHP 5
|
||||
. %Core.AcceptFullDocuments renamed to %Core.ConvertDocumentToFragment
|
||||
to better communicate its purpose
|
||||
. Error unit tests can now specify the expectation of no errors. Future
|
||||
@ -40,6 +49,11 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier
|
||||
method
|
||||
. Doxygen configuration file updated, with minor improvements
|
||||
. Test runner now checks for similarly named files in conf/ directory too.
|
||||
. Minor cosmetic change to flush-definition-cache.php: trailing newline is
|
||||
outputted
|
||||
. Maintenance script for generating PH5P patch added, original PH5P source
|
||||
file also added under version control
|
||||
. Full unit test runner script title made more descriptive with PHP version
|
||||
|
||||
2.1.2, released 2007-09-03
|
||||
! Implemented Object module for trusted users
|
||||
|
@ -26,8 +26,6 @@ class HTMLPurifier_Lexer_PH5P extends HTMLPurifier_Lexer_DOMLex {
|
||||
|
||||
}
|
||||
|
||||
// begin PHP5P source code here
|
||||
|
||||
/*
|
||||
|
||||
Copyright 2007 Jeroen van der Meer <http://jero.net/>
|
||||
@ -3736,7 +3734,8 @@ class HTML5TreeConstructer {
|
||||
}
|
||||
}
|
||||
|
||||
private function getElementCategory($name) {
|
||||
private function getElementCategory($node) {
|
||||
$name = $node->tagName;
|
||||
if(in_array($name, $this->special))
|
||||
return self::SPECIAL;
|
||||
|
||||
@ -3884,3 +3883,4 @@ class HTML5TreeConstructer {
|
||||
return $this->dom;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- old.php 2007-08-19 14:42:33.640625000 -0400
|
||||
+++ new.php 2007-08-19 14:41:51.609375000 -0400
|
||||
--- C:\Users\Edward\Webs\htmlpurifier\maintenance\PH5P.php 2007-11-04 23:41:49.074543700 -0500
|
||||
+++ C:\Users\Edward\Webs\htmlpurifier\maintenance/PH5P.new.php 2007-11-04 23:54:19.206543700 -0500
|
||||
@@ -211,7 +211,10 @@
|
||||
// If nothing is returned, emit a U+0026 AMPERSAND character token.
|
||||
// Otherwise, emit the character token that was returned.
|
||||
@ -43,3 +43,13 @@
|
||||
$entity = $id;
|
||||
break;
|
||||
}
|
||||
@@ -3673,7 +3682,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
- private function getElementCategory($name) {
|
||||
+ private function getElementCategory($node) {
|
||||
+ $name = $node->tagName;
|
||||
if(in_array($name, $this->special))
|
||||
return self::SPECIAL;
|
||||
|
||||
|
3824
maintenance/PH5P.php
Normal file
3824
maintenance/PH5P.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -32,5 +32,5 @@ foreach ($names as $name) {
|
||||
$cache->flush($config);
|
||||
}
|
||||
|
||||
echo 'Cache flushed successfully.';
|
||||
echo "Cache flushed successfully.\n";
|
||||
|
||||
|
13
maintenance/generate-ph5p-patch.php
Normal file
13
maintenance/generate-ph5p-patch.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
$orig = realpath(dirname(__FILE__) . '/PH5P.php');
|
||||
$new = realpath(dirname(__FILE__) . '/../library/HTMLPurifier/Lexer/PH5P.php');
|
||||
$newt = dirname(__FILE__) . '/PH5P.new.php'; // temporary file
|
||||
|
||||
// minor text-processing of new file to get into same format as original
|
||||
$new_src = file_get_contents($new);
|
||||
$new_src = '<?php' . PHP_EOL . substr($new_src, strpos($new_src, 'class HTML5 {'));
|
||||
|
||||
file_put_contents($newt, $new_src);
|
||||
shell_exec("diff -u \"$orig\" \"$newt\" > PH5P.patch");
|
||||
unlink($newt);
|
@ -74,10 +74,11 @@ extends HTMLPurifier_ChildDefHarness
|
||||
}
|
||||
|
||||
function testError() {
|
||||
$this->expectError('Cannot use non-block element as block wrapper');
|
||||
// $this->expectError('Cannot use non-block element as block wrapper');
|
||||
$this->obj = new HTMLPurifier_ChildDef_StrictBlockquote('div | p');
|
||||
$this->config->set('HTML', 'BlockWrapper', 'dav');
|
||||
$this->assertResult('Needs wrap', '<p>Needs wrap</p>');
|
||||
$this->swallowErrors();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,11 +27,20 @@ class HTMLPurifier_ErrorCollectorEMock extends HTMLPurifier_ErrorCollectorMock
|
||||
|
||||
function send() {
|
||||
// test for context
|
||||
$test = &$this->_getCurrentTestCase();
|
||||
$context =& SimpleTest::getContext();
|
||||
$test =& $context->getTest();
|
||||
|
||||
// compat
|
||||
if (empty($this->_mock)) {
|
||||
$mock =& $this;
|
||||
} else {
|
||||
$mock =& $this->_mock;
|
||||
}
|
||||
|
||||
foreach ($this->_expected_context as $key => $value) {
|
||||
$test->assertEqual($value, $this->_context->get($key));
|
||||
}
|
||||
$step = $this->getCallCount('send');
|
||||
$step = $mock->getCallCount('send');
|
||||
if (isset($this->_expected_context_at[$step])) {
|
||||
foreach ($this->_expected_context_at[$step] as $key => $value) {
|
||||
$test->assertEqual($value, $this->_context->get($key));
|
||||
@ -39,7 +48,7 @@ class HTMLPurifier_ErrorCollectorEMock extends HTMLPurifier_ErrorCollectorMock
|
||||
}
|
||||
// boilerplate mock code, does not have return value or references
|
||||
$args = func_get_args();
|
||||
$this->_invoke('send', $args);
|
||||
$mock->_invoke('send', $args);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -109,8 +109,9 @@ class HTMLPurifier_Strategy_FixNestingTest extends HTMLPurifier_StrategyHarness
|
||||
function testInvalidParentError() {
|
||||
// test fallback to div
|
||||
$this->config->set('HTML', 'Parent', 'obviously-impossible');
|
||||
$this->expectError('Cannot use unrecognized element as parent');
|
||||
// $this->expectError('Cannot use unrecognized element as parent');
|
||||
$this->assertResult('<div>Accept</div>');
|
||||
$this->swallowErrors();
|
||||
}
|
||||
|
||||
function testCascadingRemovalOfNodesMissingRequiredChildren() {
|
||||
|
@ -80,7 +80,7 @@ if ($test_file = $GLOBALS['HTMLPurifierTest']['File']) {
|
||||
|
||||
} else {
|
||||
|
||||
$test = new GroupTest('All Tests');
|
||||
$test = new GroupTest('All HTML Purifier tests on PHP ' . PHP_VERSION);
|
||||
foreach ($test_files as $test_file) {
|
||||
require_once $test_file;
|
||||
$test->addTestClass(path2class($test_file));
|
||||
@ -92,5 +92,3 @@ if (SimpleReporter::inCli()) $reporter = new TextReporter();
|
||||
else $reporter = new HTMLPurifier_SimpleTest_Reporter('UTF-8');
|
||||
|
||||
$test->run($reporter);
|
||||
|
||||
|
||||
|
23
tests/multitest.php
Normal file
23
tests/multitest.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
$versions_to_test = array(
|
||||
'4.3.10',
|
||||
'4.3.11',
|
||||
'4.4.6',
|
||||
'4.4.7',
|
||||
'5.1.6',
|
||||
'5.2.3',
|
||||
'5.2.4',
|
||||
'5.2.5RC2-dev',
|
||||
'5.3.0-dev',
|
||||
// '6.0.0-dev',
|
||||
);
|
||||
|
||||
echo str_repeat('-', 70) . "\n";
|
||||
echo "HTML Purifier\n";
|
||||
echo "Multiple PHP Versions Test\n\n";
|
||||
|
||||
foreach ($versions_to_test as $version) {
|
||||
passthru("phpv $version index.php");
|
||||
echo "\n\n";
|
||||
}
|
Loading…
Reference in New Issue
Block a user