first commit
This commit is contained in:
117
htmlpurifier-4.10.0/tests/HTMLPurifier/Harness.php
Executable file
117
htmlpurifier-4.10.0/tests/HTMLPurifier/Harness.php
Executable file
@ -0,0 +1,117 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* All-use harness, use this rather than SimpleTest's
|
||||
*/
|
||||
class HTMLPurifier_Harness extends UnitTestCase
|
||||
{
|
||||
|
||||
public function __construct($name = null)
|
||||
{
|
||||
parent::__construct($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @type HTMLPurifier_Config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* @type HTMLPurifier_Context
|
||||
*/
|
||||
protected $context;
|
||||
|
||||
/**
|
||||
* @type HTMLPurifier
|
||||
*/
|
||||
protected $purifier;
|
||||
|
||||
/**
|
||||
* Generates easily accessible default config/context, as well as
|
||||
* a convenience purifier for integration testing.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
list($this->config, $this->context) = $this->createCommon();
|
||||
$this->config->set('Output.Newline', '
|
||||
');
|
||||
$this->purifier = new HTMLPurifier();
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts a purification. Good for integration testing.
|
||||
* @param string $input
|
||||
* @param string $expect
|
||||
*/
|
||||
public function assertPurification($input, $expect = null)
|
||||
{
|
||||
if ($expect === null) {
|
||||
$expect = $input;
|
||||
}
|
||||
$result = $this->purifier->purify($input, $this->config);
|
||||
$this->assertIdentical($expect, $result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Accepts config and context and prepares them into a valid state
|
||||
* @param &$config Reference to config variable
|
||||
* @param &$context Reference to context variable
|
||||
*/
|
||||
protected function prepareCommon(&$config, &$context)
|
||||
{
|
||||
$config = HTMLPurifier_Config::create($config);
|
||||
if (!$context) {
|
||||
$context = new HTMLPurifier_Context();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates default configuration and context objects
|
||||
* @return Defaults in form of array($config, $context)
|
||||
*/
|
||||
protected function createCommon()
|
||||
{
|
||||
return array(HTMLPurifier_Config::createDefault(), new HTMLPurifier_Context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalizes a string to Unix (\n) endings
|
||||
*/
|
||||
protected function normalize(&$string)
|
||||
{
|
||||
$string = str_replace(array("\r\n", "\r"), "\n", $string);
|
||||
}
|
||||
|
||||
/**
|
||||
* If $expect is false, ignore $result and check if status failed.
|
||||
* Otherwise, check if $status if true and $result === $expect.
|
||||
* @param $status Boolean status
|
||||
* @param $result Mixed result from processing
|
||||
* @param $expect Mixed expectation for result
|
||||
*/
|
||||
protected function assertEitherFailOrIdentical($status, $result, $expect)
|
||||
{
|
||||
if ($expect === false) {
|
||||
$this->assertFalse($status, 'Expected false result, got true');
|
||||
} else {
|
||||
$this->assertTrue($status, 'Expected true result, got false');
|
||||
$this->assertIdentical($result, $expect);
|
||||
}
|
||||
}
|
||||
|
||||
public function getTests()
|
||||
{
|
||||
// __onlytest makes only one test get triggered
|
||||
foreach (get_class_methods(get_class($this)) as $method) {
|
||||
if (strtolower(substr($method, 0, 10)) == '__onlytest') {
|
||||
$this->reporter->paintSkip('All test methods besides ' . $method);
|
||||
return array($method);
|
||||
}
|
||||
}
|
||||
return parent::getTests();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// vim: et sw=4 sts=4
|
Reference in New Issue
Block a user