|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?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
|