lexer = new HTMLPurifier_Lexer_DirectLex(); parent::__construct(); } /** * Asserts a specific result from a one parameter + config/context function * @param $input Input parameter * @param $expect Expectation * @param $config Configuration array in form of Ns.Directive => Value. * Has no effect if $this->config is set. * @param $context_array Context array in form of Key => Value or an actual * context object. */ protected function assertResult($input, $expect = true) { if ($this->to_tokens && is_string($input)) { // $func may cause $input to change, so "clone" another copy // to sacrifice $input = $this->tokenize($temp = $input); $input_c = $this->tokenize($temp); } else { $input_c = $input; } // call the function $func = $this->func; $result = $this->obj->$func($input_c, $this->config, $this->context); // test a bool result if (is_bool($result)) { $this->assertIdentical($expect, $result); return; } elseif (is_bool($expect)) { $expect = $input; } if ($this->to_html) { $result = $this->generate($result); if (is_array($expect)) { $expect = $this->generate($expect); } } $this->assertIdentical($expect, $result); if ($expect !== $result) { echo '
' . htmlspecialchars($result) . '
'; } } /** * Tokenize HTML into tokens, uses member variables for common variables */ protected function tokenize($html) { return $this->lexer->tokenizeHTML($html, $this->config, $this->context); } /** * Generate textual HTML from tokens */ protected function generate($tokens) { $generator = new HTMLPurifier_Generator($this->config, $this->context); return $generator->generateFromTokens($tokens); } }