diff --git a/NEWS b/NEWS
index d8466ba2..2bc53ee5 100644
--- a/NEWS
+++ b/NEWS
@@ -18,10 +18,15 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier
+ INSTALL document rewritten
+ TODO added semi-lossy conversion
+ API Doxygen docs' file exclusions updated
+ + Added notes on HTML versus XML attribute whitespace handling
+ + Noted that HTMLPurifier_ChildDef_Custom isn't being used
+ + Noted that config object's definitions are cached versions
- Fixed lack of attribute parsing in HTMLPurifier_Lexer_PEARSax3
- ftp:// URIs now have their typecodes checked
+- Hooked up HTMLPurifier_ChildDef_Custom's unit tests (they weren't being run)
. Line endings standardized throughout project (svn:eol-style standardized)
. Refactored parseData() to general Lexer class
+. Tester named "HTML Purifier" not "HTMLPurifier"
1.1.1, released 2006-09-24
! Configuration option to optionally Tidy up output for indentation to make up
diff --git a/library/HTMLPurifier/AttrDef.php b/library/HTMLPurifier/AttrDef.php
index 31762ec4..3d04c752 100644
--- a/library/HTMLPurifier/AttrDef.php
+++ b/library/HTMLPurifier/AttrDef.php
@@ -48,7 +48,16 @@ class HTMLPurifier_AttrDef
*
* @note This method is not entirely standards compliant, as trim() removes
* more types of whitespace than specified in the spec. In practice,
- * this is rarely a problem.
+ * this is rarely a problem, as those extra characters usually have
+ * already been removed by HTMLPurifier_Encoder.
+ *
+ * @warning This processing is inconsistent with XML's whitespace handling
+ * as specified by section 3.3.3 and referenced XHTML 1.0 section
+ * 4.7. Compliant processing requires all line breaks normalized
+ * to "\n", so the fix is not as simple as fixing it in this
+ * function. Trim and whitespace collapsing are supposed to only
+ * occur in NMTOKENs. However, note that we are NOT necessarily
+ * parsing XML, thus, this behavior may still be correct.
*
* @public
*/
diff --git a/library/HTMLPurifier/ChildDef.php b/library/HTMLPurifier/ChildDef.php
index e6cc93f8..793ec51a 100644
--- a/library/HTMLPurifier/ChildDef.php
+++ b/library/HTMLPurifier/ChildDef.php
@@ -56,6 +56,8 @@ class HTMLPurifier_ChildDef
*
* @warning Currently this class is an all or nothing proposition, that is,
* it will only give a bool return value.
+ * @note This class is currently not used by any code, although it is unit
+ * tested.
*/
class HTMLPurifier_ChildDef_Custom extends HTMLPurifier_ChildDef
{
diff --git a/library/HTMLPurifier/Config.php b/library/HTMLPurifier/Config.php
index 706dffce..9bffaab3 100644
--- a/library/HTMLPurifier/Config.php
+++ b/library/HTMLPurifier/Config.php
@@ -26,12 +26,12 @@ class HTMLPurifier_Config
var $def;
/**
- * Instance of HTMLPurifier_HTMLDefinition
+ * Cached instance of HTMLPurifier_HTMLDefinition
*/
var $html_definition;
/**
- * Instance of HTMLPurifier_CSSDefinition
+ * Cached instance of HTMLPurifier_CSSDefinition
*/
var $css_definition;
diff --git a/tests/HTMLPurifier/ChildDefTest.php b/tests/HTMLPurifier/ChildDefTest.php
index be81831f..db00bd20 100644
--- a/tests/HTMLPurifier/ChildDefTest.php
+++ b/tests/HTMLPurifier/ChildDefTest.php
@@ -46,18 +46,23 @@ class HTMLPurifier_ChildDefTest extends UnitTestCase
$this->def = new HTMLPurifier_ChildDef_Custom(
'(a, b?, c*, d+, (a, b)*)');
+ $inputs = array();
+ $expect = array();
+ $config = array();
+
$inputs[0] = '';
$expect[0] = false;
$inputs[1] = '';
$expect[1] = true;
- $inputs[2] = 'Dobfoofoo';
+ $inputs[2] = 'Dobfoofoo';
$expect[2] = true;
$inputs[3] = '';
$expect[3] = false;
+ $this->assertSeries($inputs, $expect, $config);
}
function test_table() {
diff --git a/tests/HTMLPurifier/ConfigTest.php b/tests/HTMLPurifier/ConfigTest.php
index b5f606f4..6812c4d2 100644
--- a/tests/HTMLPurifier/ConfigTest.php
+++ b/tests/HTMLPurifier/ConfigTest.php
@@ -8,6 +8,7 @@ class HTMLPurifier_ConfigTest extends UnitTestCase
var $our_copy, $old_copy;
function setUp() {
+ // set up a dummy schema object for testing
$our_copy = new HTMLPurifier_ConfigSchema();
$this->old_copy = HTMLPurifier_ConfigSchema::instance();
$this->our_copy =& HTMLPurifier_ConfigSchema::instance($our_copy);
@@ -93,6 +94,17 @@ class HTMLPurifier_ConfigTest extends UnitTestCase
}
+ function test_getDefinition() {
+
+ $config = HTMLPurifier_Config::createDefault();
+ $def = $config->getHTMLDefinition();
+ $this->assertIsA($def, 'HTMLPurifier_HTMLDefinition');
+
+ $def = $config->getCSSDefinition();
+ $this->assertIsA($def, 'HTMLPurifier_CSSDefinition');
+
+ }
+
}
?>
\ No newline at end of file
diff --git a/tests/index.php b/tests/index.php
index 880c5a87..cdb87ec0 100644
--- a/tests/index.php
+++ b/tests/index.php
@@ -114,14 +114,14 @@ if (isset($_GET['file']) && isset($test_file_lookup[$_GET['file']])) {
// execute only one test
$test_file = $_GET['file'];
- $test = new GroupTest('HTMLPurifier - ' . $test_file);
+ $test = new GroupTest('HTML Purifier - ' . $test_file);
$path = 'HTMLPurifier/' . $test_file;
require_once $path;
$test->addTestClass(htmlpurifier_path2class($path));
} else {
- $test = new GroupTest('HTMLPurifier');
+ $test = new GroupTest('HTML Purifier');
foreach ($test_files as $test_file) {
$path = 'HTMLPurifier/' . $test_file;