2006-07-24 02:28:40 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
require_once 'HTMLPurifier/Definition.php';
|
|
|
|
require_once 'HTMLPurifier/Lexer/DirectLex.php';
|
|
|
|
|
2006-08-05 00:30:31 +00:00
|
|
|
class HTMLPurifier_StrategyHarness extends UnitTestCase
|
2006-07-24 02:28:40 +00:00
|
|
|
{
|
|
|
|
|
2006-07-24 02:49:37 +00:00
|
|
|
var $lex, $gen;
|
2006-07-24 02:28:40 +00:00
|
|
|
|
2006-08-05 00:30:31 +00:00
|
|
|
function HTMLPurifier_StrategyHarness() {
|
2006-07-24 02:28:40 +00:00
|
|
|
$this->UnitTestCase();
|
|
|
|
|
|
|
|
// we can't use the DOM lexer since it does too much stuff
|
|
|
|
// automatically, however, we should be able to use it
|
|
|
|
// interchangeably if we wanted to...
|
|
|
|
|
|
|
|
if (true) {
|
|
|
|
$this->lex = new HTMLPurifier_Lexer_DirectLex();
|
|
|
|
} else {
|
|
|
|
require_once 'HTMLPurifier/Lexer/DOMLex.php';
|
|
|
|
$this->lex = new HTMLPurifier_Lexer_DOMLex();
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->gen = new HTMLPurifier_Generator();
|
|
|
|
}
|
|
|
|
|
2006-08-04 01:47:48 +00:00
|
|
|
function assertStrategyWorks($strategy, $inputs, $expect, $config = array()) {
|
2006-07-29 17:38:28 +00:00
|
|
|
foreach ($inputs as $i => $input) {
|
|
|
|
$tokens = $this->lex->tokenizeHTML($input);
|
2006-08-14 02:46:34 +00:00
|
|
|
if (!isset($config[$i])) {
|
|
|
|
$config[$i] = HTMLPurifier_Config::createDefault();
|
2006-08-04 01:47:48 +00:00
|
|
|
}
|
2006-08-14 02:46:34 +00:00
|
|
|
$result_tokens = $strategy->execute($tokens, $config[$i]);
|
2006-07-29 17:38:28 +00:00
|
|
|
$result = $this->gen->generateFromTokens($result_tokens);
|
|
|
|
$this->assertEqual($expect[$i], $result, "Test $i: %s");
|
|
|
|
paintIf($result, $result != $expect[$i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2006-07-24 02:28:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
?>
|