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

788 Commits

Author SHA1 Message Date
Edward Z. Yang
973cc43b64 Malformed UTF-8 and non-SGML character detection and cleaning implemented
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@303 48356398-32a2-884e-a903-53898d9a118a
2006-08-19 17:53:59 +00:00
Edward Z. Yang
a33cd12f1a Fixed broken multibyte numeric entity conversion in Lexer::substituteNonSpecialEntities()
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@299 48356398-32a2-884e-a903-53898d9a118a
2006-08-18 17:49:33 +00:00
Edward Z. Yang
ad83ab430d Make unit tests UTF-8, add phpdoc.ini config file.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@297 48356398-32a2-884e-a903-53898d9a118a
2006-08-18 04:24:19 +00:00
Edward Z. Yang
1cadb08fbb Commit IPv6 fix, with majoring factoring out. Thank you Feyd!
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@284 48356398-32a2-884e-a903-53898d9a118a
2006-08-17 01:05:35 +00:00
Edward Z. Yang
ed7e72f2e3 Commit FontFamily implementation. It's a little flaky, but should be reasonable for 99% of all fonts.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@282 48356398-32a2-884e-a903-53898d9a118a
2006-08-16 17:25:25 +00:00
Edward Z. Yang
cb463f9676 Commit text-decoration implementation.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@280 48356398-32a2-884e-a903-53898d9a118a
2006-08-16 15:12:48 +00:00
Edward Z. Yang
3422378c32 Implement all "Multiple" CSS properties.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@273 48356398-32a2-884e-a903-53898d9a118a
2006-08-16 01:39:06 +00:00
Edward Z. Yang
2d28380763 Commit Multiple AttrDef, forms scaffolding for a few more CSS properties.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@272 48356398-32a2-884e-a903-53898d9a118a
2006-08-16 00:34:37 +00:00
Edward Z. Yang
1388beb456 Implement all composite CSS definitions.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@271 48356398-32a2-884e-a903-53898d9a118a
2006-08-16 00:18:58 +00:00
Edward Z. Yang
0da17072d1 Change unacceptable value default behavior to drop silently.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@269 48356398-32a2-884e-a903-53898d9a118a
2006-08-15 23:58:18 +00:00
Edward Z. Yang
acd7ceb940 Major optimization on tokenizeDOM(), reduce execution time from 75% to 20% by passing tokens by reference and using a token factory.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@265 48356398-32a2-884e-a903-53898d9a118a
2006-08-15 20:19:16 +00:00
Edward Z. Yang
cedcbb9e15 Update TODO, add extra fringe test-case for extractBody()
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@259 48356398-32a2-884e-a903-53898d9a118a
2006-08-15 01:14:39 +00:00
Edward Z. Yang
9a35dfa6b9 Add support for full document parsing, aka discard everything that's not in-between body if applicable.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@258 48356398-32a2-884e-a903-53898d9a118a
2006-08-15 00:53:24 +00:00
Edward Z. Yang
d7140f2e05 Outfit a bunch of other classes so they can accept a configuration object. Put in basic scaffolding for extractBody() functionality.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@257 48356398-32a2-884e-a903-53898d9a118a
2006-08-15 00:31:12 +00:00
Edward Z. Yang
24c64dbbac Implement attribute transforms for required attributes. I can now confidently say that output will always be valid.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@256 48356398-32a2-884e-a903-53898d9a118a
2006-08-14 23:11:28 +00:00
Edward Z. Yang
e770d994a7 Rename Definition to HTMLDefinition.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@255 48356398-32a2-884e-a903-53898d9a118a
2006-08-14 21:22:49 +00:00
Edward Z. Yang
218eb67167 Remove legacy required code from AttrDef_URI, also explicitly disallow < and > in URIs.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@253 48356398-32a2-884e-a903-53898d9a118a
2006-08-14 21:06:57 +00:00
Edward Z. Yang
299236f695 Fix DOM bug where default encoding for HTML docs is not UTF-8.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@252 48356398-32a2-884e-a903-53898d9a118a
2006-08-14 13:27:18 +00:00
Edward Z. Yang
9ac52b51dd Bugfix: test overwrite another.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@248 48356398-32a2-884e-a903-53898d9a118a
2006-08-14 04:01:05 +00:00
Edward Z. Yang
238678871e - Fixed lots of bugs
- Defined new directive %Core.EscapeInvalidChildren, for previously commented out functionality
- Removed convenience configuration generation: you *have* to pass it unless you're interfacing with HTMLPurifier
- Homogenized function parameters even when only a few of them are used
- Rewrote unit tests that expected previous behavior
- Introduced configuration object to ChildDef tests

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@243 48356398-32a2-884e-a903-53898d9a118a
2006-08-14 02:46:34 +00:00
Edward Z. Yang
0170bb2120 Add Percentage, and font-size (not all styles fully realized yet though).
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@242 48356398-32a2-884e-a903-53898d9a118a
2006-08-14 02:08:45 +00:00
Edward Z. Yang
b5ff592157 Add CSSLength support, and roll out to all applicable styles.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@237 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 23:08:38 +00:00
Edward Z. Yang
ff7fdaca38 Commit AttrDef number, currently used by no styles right now, but percentage and length will piggy-back off it.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@236 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 22:35:55 +00:00
Edward Z. Yang
71c4a3c50c Commit dud AttrDef integer.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@235 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 21:59:52 +00:00
Edward Z. Yang
61d977d09f Add slight documentation to CompositeTest.php
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@232 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 21:35:06 +00:00
Edward Z. Yang
4ffb2da238 Implement the color AttrDef.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@230 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 21:23:57 +00:00
Edward Z. Yang
415b7d3913 Add more information to progress document, fix an invalid definition in CSSDefinition.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@229 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 19:08:14 +00:00
Edward Z. Yang
8b45c7601a Implement Composite attribute definition.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@228 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 18:16:30 +00:00
Edward Z. Yang
441a0cbe94 Minor formatting fixes.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@227 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 17:05:30 +00:00
Edward Z. Yang
1e2f853f4f Implemented CSS properties whose valid values were enumerated. Accept inherit for all properties. Some composite unit tests.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@226 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 16:52:31 +00:00
Edward Z. Yang
d721066d27 Make CSS validator drop duplicate declarations.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@225 48356398-32a2-884e-a903-53898d9a118a
2006-08-13 04:52:40 +00:00
Edward Z. Yang
7c86e3cc0f Commit initial implementation of AttrDef_CSS, with text-align being the only defined property. Further development will be going on in AttrDef and CSSDefinition.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@223 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 20:22:09 +00:00
Edward Z. Yang
4fe9d943e8 Hook in URI to Definition. Update progress documents.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@220 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 19:22:57 +00:00
Edward Z. Yang
4193fd018a Commit a very lenient mailto checker. We'll tighten it later.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@219 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 19:11:21 +00:00
Edward Z. Yang
d28bad648a Implement URIScheme and subclasses except for mailto. Remove fragment from components, as it is scheme independent.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@218 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 18:58:54 +00:00
Edward Z. Yang
8167fca493 Add a directive that lets you disallow pure-registry overloading.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@216 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 17:12:27 +00:00
Edward Z. Yang
6c3d364213 Augment URISchemeRegistry with the ability to overload/register your own schemes.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@215 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 17:06:14 +00:00
Edward Z. Yang
10ea44932a Revamp URITest to use the harness.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@214 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 16:32:57 +00:00
Edward Z. Yang
ebe01a0a24 Fix a few errors that came with API change. I really should run the unit tests before committing.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@213 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 16:12:16 +00:00
Edward Z. Yang
a2880bdff2 Generalize IDAccumulator into AttrContext. Modify tests and classes accordingly. Also, this allows us to make the validate() parameters uniform among all AttrDef subclasses.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@212 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 16:04:40 +00:00
Edward Z. Yang
77f2833f36 Fix PHP 4 problems with references.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@211 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 04:07:06 +00:00
Edward Z. Yang
c2ec56b872 Initial implementation of URISchemeRegistry (fixed overload bug in process). Also, add extra notes to some of the unit tests.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@210 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 03:56:27 +00:00
Edward Z. Yang
4ab6cab15c Finish bare-bones implementation of URI. This will suffice for now.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@209 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 03:35:05 +00:00
Edward Z. Yang
4b097ef493 Commit initial URI unit tests and implementation. They're not complete yet though.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@206 48356398-32a2-884e-a903-53898d9a118a
2006-08-12 01:12:35 +00:00
Edward Z. Yang
0db1cbb7ac Revamp Configuration classes, breaking backwards configuration compatibility (not that there was much to broken to begin with). Fix bug involving PHP 4 object typecasting.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@203 48356398-32a2-884e-a903-53898d9a118a
2006-08-11 20:23:41 +00:00
Edward Z. Yang
3c2c0c1a1b Make PEAR tests configurable.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@201 48356398-32a2-884e-a903-53898d9a118a
2006-08-10 12:41:39 +00:00
Edward Z. Yang
4d224c5013 Use configuration in test runner.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@200 48356398-32a2-884e-a903-53898d9a118a
2006-08-10 12:22:55 +00:00
Edward Z. Yang
d5e75f2616 Add NumberSpan definition (non-DTD, but applies to enough to be useful). All widely used non-deprecated attributes have been implemented (except for rel/rev, but that's tricky). Add note about quirky COL handling and possible implementation of a workaround.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@174 48356398-32a2-884e-a903-53898d9a118a
2006-08-06 03:58:48 +00:00
Edward Z. Yang
d429989f86 Implement MultiLength.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@173 48356398-32a2-884e-a903-53898d9a118a
2006-08-06 01:41:18 +00:00
Edward Z. Yang
2d8e4f3993 Bugfix: Fix include typo.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@172 48356398-32a2-884e-a903-53898d9a118a
2006-08-06 01:38:47 +00:00
Edward Z. Yang
cffcd7c661 Bugfix: Rewire a require_once.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@171 48356398-32a2-884e-a903-53898d9a118a
2006-08-06 01:31:33 +00:00
Edward Z. Yang
fb18fe31e1 AttrDef_Length implemented. Reuses a bit of stuff from Pixel.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@170 48356398-32a2-884e-a903-53898d9a118a
2006-08-06 01:30:54 +00:00
Edward Z. Yang
a520b5469e Implement Pixels attribute definition.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@169 48356398-32a2-884e-a903-53898d9a118a
2006-08-06 01:03:48 +00:00
Edward Z. Yang
fdc838c75e Reuse attribute definitions to define a few more attributes.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@168 48356398-32a2-884e-a903-53898d9a118a
2006-08-05 22:14:19 +00:00
Edward Z. Yang
a4ce51cca2 Add case sensitivity test.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@167 48356398-32a2-884e-a903-53898d9a118a
2006-08-05 19:52:30 +00:00
Edward Z. Yang
2deb2fc285 Implement TextAlign and all hooks necessary, but it's kind of useless since CSS validation hasn't been built yet.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@166 48356398-32a2-884e-a903-53898d9a118a
2006-08-05 02:56:57 +00:00
Edward Z. Yang
60f769d088 Augment test suite, allowing only single files to be tested.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@165 48356398-32a2-884e-a903-53898d9a118a
2006-08-05 02:28:35 +00:00
Edward Z. Yang
9d390fca56 Refactor AttrTransform_Lang slightly by changing input output from token to attribute.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@163 48356398-32a2-884e-a903-53898d9a118a
2006-08-05 02:16:28 +00:00
Edward Z. Yang
8a23710405 Implement lang and xml:lang. Fixed a bunch of bugs too.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@162 48356398-32a2-884e-a903-53898d9a118a
2006-08-05 01:50:13 +00:00
Edward Z. Yang
1945ddca5c Refactor unit tests so that abstract test cases are now called Harnesses and AttrDef tests use their harness's assertDef() function, which enforces type much better. Also fixed a few bugs.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@161 48356398-32a2-884e-a903-53898d9a118a
2006-08-05 00:30:31 +00:00
Edward Z. Yang
6232221c08 Define AttrDef_Text and parseCDATA().
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@160 48356398-32a2-884e-a903-53898d9a118a
2006-08-04 03:13:04 +00:00
Edward Z. Yang
b267b0c202 Add an attribute entity parse test to Lexer and change PEARSax3 to a proof of concept.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@158 48356398-32a2-884e-a903-53898d9a118a
2006-08-04 02:59:15 +00:00
Edward Z. Yang
a2fc5da060 Implement AttrDef_Class.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@157 48356398-32a2-884e-a903-53898d9a118a
2006-08-04 02:48:20 +00:00
Edward Z. Yang
784b756b3f Add configuration as a parameter to all AttrDef objects. If we get another construction like accumulator, however, we'll have to create an AttrContext object.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@156 48356398-32a2-884e-a903-53898d9a118a
2006-08-04 01:52:54 +00:00
Edward Z. Yang
a0ee772423 Set up configuration class, implement attr_id_blacklist
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@155 48356398-32a2-884e-a903-53898d9a118a
2006-08-04 01:47:48 +00:00
Edward Z. Yang
7d2bf08d2f Implement simple attribute transformations and roll them out.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@152 48356398-32a2-884e-a903-53898d9a118a
2006-08-04 00:11:54 +00:00
Edward Z. Yang
26733183b7 Add support for hard exclusions that affect all child nodes.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@146 48356398-32a2-884e-a903-53898d9a118a
2006-08-03 01:18:57 +00:00
Edward Z. Yang
aa249be067 Fix chameleon behavior with ins and del.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@145 48356398-32a2-884e-a903-53898d9a118a
2006-08-03 01:03:23 +00:00
Edward Z. Yang
064fd603d3 Commit TagTransform_Font and associated test-cases.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@143 48356398-32a2-884e-a903-53898d9a118a
2006-08-03 00:14:10 +00:00
Edward Z. Yang
80281dda55 Fix case-sensitivity issues for attributes. Added TokenTest. Updated TODO. Removed TagTransform::normalizeAttributes
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@142 48356398-32a2-884e-a903-53898d9a118a
2006-08-02 02:43:52 +00:00
Edward Z. Yang
626cfc1172 Implement center, menu and dir tag transformations. Font transform pending.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@140 48356398-32a2-884e-a903-53898d9a118a
2006-08-02 02:24:03 +00:00
Edward Z. Yang
d243545142 Compat changes with earlier versions of PHP.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@139 48356398-32a2-884e-a903-53898d9a118a
2006-08-01 01:57:22 +00:00
Edward Z. Yang
f63e870300 Quality control, improve a little documentation and fix UTF-8 unfriendliness in the Generator.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@138 48356398-32a2-884e-a903-53898d9a118a
2006-08-01 00:29:38 +00:00
Edward Z. Yang
79e5cd4543 Augment test file so we can run from cli.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@137 48356398-32a2-884e-a903-53898d9a118a
2006-08-01 00:18:22 +00:00
Edward Z. Yang
9d411bd5cc - Implement double-checking in Strategy/FixNesting.php, fixes the table bugs.
- Move around child definitions so they make a little more sense (rename to Custom) and also add $allow_empty property to help FixNesting.php determine whether or not to double-check.

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@136 48356398-32a2-884e-a903-53898d9a118a
2006-07-31 03:04:57 +00:00
Edward Z. Yang
9c6ae16764 Massively refactored Definition, moved MakeWellFormed HTML specific code out.
Add table functionality for nesting, don't know how I missed that. It's still broken though.

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@135 48356398-32a2-884e-a903-53898d9a118a
2006-07-31 00:15:01 +00:00
Edward Z. Yang
70bd80e66a Added ValidateAttributes strategy and associated unit tests. Amended Generator with some sanity checks. Made Definition include all necessary definitions. Note the two elements (bdo and br) that only use coreattrs.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@132 48356398-32a2-884e-a903-53898d9a118a
2006-07-30 18:37:42 +00:00
Edward Z. Yang
bb0435bdd4 Add AttrDef_Id, as well as amend the accumulator by adding a load.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@131 48356398-32a2-884e-a903-53898d9a118a
2006-07-30 16:35:05 +00:00
Edward Z. Yang
bba0d0b77a Remove Singleton functionality, the accumulator will just have to be passed around.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@130 48356398-32a2-884e-a903-53898d9a118a
2006-07-30 16:01:24 +00:00
Edward Z. Yang
4ab930dab4 Add IDAccumulator.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@129 48356398-32a2-884e-a903-53898d9a118a
2006-07-30 15:52:25 +00:00
Edward Z. Yang
f8eaedb500 Factor out definitions to a ['child'] so that we could assign the ['attr'] definitions separately.
Also, added AttrDef/EnumTest.php

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@127 48356398-32a2-884e-a903-53898d9a118a
2006-07-30 00:54:38 +00:00
Edward Z. Yang
9b7ad89ab5 - Added Composite and Core strategies.
- Added generate_mock() function for testing
- Factored out inputs/output tests to StrategyAbstractTest

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@124 48356398-32a2-884e-a903-53898d9a118a
2006-07-29 17:38:28 +00:00
Edward Z. Yang
619d5d9bc1 Migrate strategies to separate classes complete.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@119 48356398-32a2-884e-a903-53898d9a118a
2006-07-24 02:49:37 +00:00
Edward Z. Yang
f75e8dab8c Extract FixNestingTest from DefinitionTest.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@118 48356398-32a2-884e-a903-53898d9a118a
2006-07-24 02:43:53 +00:00
Edward Z. Yang
63396bb076 Extract MakeWellFormedTest from DefinitionTest.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@117 48356398-32a2-884e-a903-53898d9a118a
2006-07-24 02:41:06 +00:00
Edward Z. Yang
4c200f6bcb Extract RemoveForeignElementsTest from Definition.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@116 48356398-32a2-884e-a903-53898d9a118a
2006-07-24 02:33:07 +00:00
Edward Z. Yang
e768f845f4 Extract common functionality to StrategyAbstractTest.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@115 48356398-32a2-884e-a903-53898d9a118a
2006-07-24 02:28:40 +00:00
Edward Z. Yang
dfb3d48397 Migrate DefinitionTest to use DirectLex for easier to read test-cases.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@109 48356398-32a2-884e-a903-53898d9a118a
2006-07-24 01:22:51 +00:00
Edward Z. Yang
609977f9f5 Add CDATA support to the Lexers, as well as give PEARSax3 entity replacement.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@106 48356398-32a2-884e-a903-53898d9a118a
2006-07-23 23:04:34 +00:00
Edward Z. Yang
5ce0ae7056 Implement EntityLookup and put in the Lexer. Some behavior was migrated, since it looks like it will have to be used in all Lexers, not just DirectLex (which is the only one that uses it).
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@105 48356398-32a2-884e-a903-53898d9a118a
2006-07-23 21:07:30 +00:00
Edward Z. Yang
2fa1161d3d - Implemented special entity conversion.
- Optimized and documented DirectLex.
- Rearranged test cases.

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@100 48356398-32a2-884e-a903-53898d9a118a
2006-07-23 18:13:04 +00:00
Edward Z. Yang
14f481bcf6 svn:eol-style = native
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@97 48356398-32a2-884e-a903-53898d9a118a
2006-07-23 00:11:03 +00:00
Edward Z. Yang
042eda0463 Hook new test file in and delete duplicated tests.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@95 48356398-32a2-884e-a903-53898d9a118a
2006-07-23 00:03:11 +00:00
Edward Z. Yang
6a5ff6d2a9 Branch the LexerTest in order to partition DirectLex specific unit tests.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@94 48356398-32a2-884e-a903-53898d9a118a
2006-07-23 00:01:11 +00:00
Edward Z. Yang
ca1aefe271 Commit various optimizations to the Lexer, and add stub file for profiling the lexer.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@92 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 22:48:07 +00:00
Edward Z. Yang
de5ab5e6a0 Kick the auto-prepend habit.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@91 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 19:01:59 +00:00
Edward Z. Yang
ac1e62e043 Optimize next*() functions in DirectLex, add test for offset. Update Lexer documents.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@90 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 18:55:34 +00:00
Edward Z. Yang
eac83995e1 Remove dud test file.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@89 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 16:04:22 +00:00
Edward Z. Yang
1ab3ae160a Move classes into Zend style setup.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@88 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 15:38:41 +00:00
Edward Z. Yang
f0d74a3bf4 Fix parse error in PHP4.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@81 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 14:00:52 +00:00
Edward Z. Yang
4bf3305dff Build another lexer from PHP5's DOM library. Extremely fast!
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@80 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 13:50:05 +00:00
Edward Z. Yang
3e982c7f2c Rename Lexer, separate files. Also augmented benchmarks and benchmarker,
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@79 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 12:53:04 +00:00
Edward Z. Yang
cafa24482d Setup include web. Unit tests should now be able to be run independently.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@75 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 00:13:08 +00:00
Edward Z. Yang
025b648c99 Split out code in Definition.php .
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@73 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 00:02:48 +00:00
Edward Z. Yang
f00a80c561 (Test) Branch Definition to ChildDef in order to split out code in the file.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@72 48356398-32a2-884e-a903-53898d9a118a
2006-07-22 00:01:38 +00:00
Edward Z. Yang
404ca68c87 Rename PureHTMLDefinition -> HTMLPurifier_Definition, and internal classes too.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@69 48356398-32a2-884e-a903-53898d9a118a
2006-07-21 23:38:44 +00:00
Edward Z. Yang
436873e227 Move tester, complete HTML_Purifier -> HTMLPurifier move.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@68 48356398-32a2-884e-a903-53898d9a118a
2006-07-21 23:27:00 +00:00
Edward Z. Yang
1836b73c63 HTML_Purifier to HTMLPurifier. May want to rethink schematics for this though.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@67 48356398-32a2-884e-a903-53898d9a118a
2006-07-21 23:13:22 +00:00
Edward Z. Yang
ccebe77e70 Rename HTML_Generator to HTMLPurifier_Generator.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@66 48356398-32a2-884e-a903-53898d9a118a
2006-07-21 23:10:30 +00:00
Edward Z. Yang
6a6afaccc5 Rename HTML_Lexer to HTMLPurifier_Lexer. However, some more refactoring still needs to be done (namely making the lexer an interface).
Also fixed broken benchmarks.

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@65 48356398-32a2-884e-a903-53898d9a118a
2006-07-21 23:07:47 +00:00
Edward Z. Yang
23dba8b55e Rename MarkupFragment.php to Token.php, change internal class names and rewire the classes. We also started adding more dependence on the Lexer and Generator in unrelated tests.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@63 48356398-32a2-884e-a903-53898d9a118a
2006-07-21 11:27:54 +00:00
Edward Z. Yang
3427c6c079 Begin getting parsing of character data into shape, not done yet.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@60 48356398-32a2-884e-a903-53898d9a118a
2006-07-20 02:43:06 +00:00
Edward Z. Yang
ff8f24458d Finish implementing fixNesting(). Removed security-in-depth check for optimization reasons, since the info array will never cause such a condition.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@58 48356398-32a2-884e-a903-53898d9a118a
2006-07-20 00:30:35 +00:00
Edward Z. Yang
3e6bcb7a0f Implemented good behavior structure for fixNesting. Goes into infinite loop if bad stuff is passed.
Remove dud test and note which tests need to be added. Also, we're only running one test at a time to ease debugging.

git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@57 48356398-32a2-884e-a903-53898d9a118a
2006-07-19 00:21:21 +00:00
Edward Z. Yang
5391195170 Finalize fixNesting test suite.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@55 48356398-32a2-884e-a903-53898d9a118a
2006-07-18 23:17:41 +00:00
Edward Z. Yang
06798e60f2 Move Test_HTMLDTD_ChildDef to top for improved organization.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@54 48356398-32a2-884e-a903-53898d9a118a
2006-07-15 20:50:28 +00:00
Edward Z. Yang
d9c8effc9b Begin fleshing out test_fixNesting(). Still needs more test-cases.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@52 48356398-32a2-884e-a903-53898d9a118a
2006-06-11 22:53:40 +00:00
Edward Z. Yang
4935c69904 Main: implemented regexp-style validation for complicated child definitions
Also:
* Updated spec with some extra comments
* Trigger error if HTMLDTD_ChildDef_Simple has validateChildren called
* Factor out definition assertion in test class

git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@50 48356398-32a2-884e-a903-53898d9a118a
2006-06-05 00:50:27 +00:00
Edward Z. Yang
f5486bbbae Add ChildDef_Optional, which piggy-backs off of ChildDef_Required. Some column 80 formatting fixes.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@49 48356398-32a2-884e-a903-53898d9a118a
2006-05-30 22:44:14 +00:00
Edward Z. Yang
83f735ea7e Finish HTMLDTD_ChildDef_Required.
Fix bug in HTML_Generator that resulted in attribute-less empty elements to have extra spaces in them.

Add whitespace designation to MF_Text.

git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@44 48356398-32a2-884e-a903-53898d9a118a
2006-04-17 00:49:15 +00:00
Edward Z. Yang
b29155018b Add a few more comments about possible extra features.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@42 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 21:06:08 +00:00
Edward Z. Yang
8c80b70c37 Implement automatic <p> and <li> closing. We trimmed down the closing P tags list to something more sane in the spec.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@41 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 19:34:28 +00:00
Edward Z. Yang
ffbeaf66d1 Refine tests to include attribute checks and some other cases.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@40 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 16:57:51 +00:00
Edward Z. Yang
eefb08b6f9 PureHTMLDefinition::makeWellFormed() is now complete, but may be missing a few unit tests. Update spec: we need transforms for the foreign elements. PureHTMLDefinition's children definitions have info but not behavior.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@39 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 16:50:51 +00:00
Edward Z. Yang
4c9f4067ab Begin creating scaffolding for the DTD declarations + evaluations that will make up the meat of the rest of the validation. Add a few more forgotten tests for makeWellFormed()
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@38 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 04:07:21 +00:00
Edward Z. Yang
3f4d928173 Add broken test cases for PureHTMLDefinition::makeWellFormed()
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@37 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 03:48:03 +00:00
Edward Z. Yang
0c88b090b0 Add HTML_Generator::generateFromTokens().
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@36 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 03:42:25 +00:00
Edward Z. Yang
1a3887de1b Standardize test-cases with the prefix Test_. Add framework for HTML_Purifier, its unit test will really only be for regression testing from integration issues. It's more important to test the components.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@35 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 03:39:39 +00:00
Edward Z. Yang
69da034570 Fix bug in HTML_Generator that resulted in extra spaces. PureHTMLDefinition now passes all tests.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@34 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 03:33:37 +00:00
Edward Z. Yang
7c6775d552 Add HTML_Generator class and associated unit tests.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@32 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 03:27:40 +00:00
Edward Z. Yang
c4b23cc775 Turn on entity parsing for the Lexers. Add PureHTMLDefinition and define removeForeignElements.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@31 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 03:00:05 +00:00
Edward Z. Yang
6372a16926 Fix some more attribute parsing things that could lead to infinite loops.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@25 48356398-32a2-884e-a903-53898d9a118a
2006-04-16 00:23:35 +00:00
Edward Z. Yang
92bfaafd20 Fix infinite loop that occurs when we have unquoted attributes.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@24 48356398-32a2-884e-a903-53898d9a118a
2006-04-15 22:28:03 +00:00
Edward Z. Yang
dad395ac45 Scratch PI or JASP from spec. Add extra comments about MarkupFragment's behavior to incoming data. More Todos for our home-brew lexer, and also fix empty tag support in the SAX parer adapter. Add test framework for marking SAX to be tested with the regular result, or a specialized result.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@22 48356398-32a2-884e-a903-53898d9a118a
2006-04-15 02:19:27 +00:00
Edward Z. Yang
181d544b61 Cleanup final renaming stuff (how could I forget to rename the class) and hook in the SAX parser. It has a bit different behavior, so you'll have to be careful.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@21 48356398-32a2-884e-a903-53898d9a118a
2006-04-15 01:47:12 +00:00
Edward Z. Yang
bf331d3a13 Kick naming changes into effect.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@20 48356398-32a2-884e-a903-53898d9a118a
2006-04-15 01:30:26 +00:00
Edward Z. Yang
ec8d41d768 Copy of tests for MarkupLexer
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@19 48356398-32a2-884e-a903-53898d9a118a
2006-04-15 01:17:13 +00:00
Edward Z. Yang
6d77fa061b Add framework.
git-svn-id: http://htmlpurifier.org/svnroot/html_purifier/trunk@17 48356398-32a2-884e-a903-53898d9a118a
2006-04-15 01:13:42 +00:00