parser = new HTMLPurifier_StringHashParser(); } /** * Assert that $file gets parsed into the form of $expect */ protected function assertParse($file, $expect) { $result = $this->parser->parseFile(dirname(__FILE__) . '/StringHashParser/' . $file); $this->assertIdentical($result, $expect); } public function testSimple() { $this->assertParse('Simple.txt', array( 'ID' => 'Namespace.Directive', 'TYPE' => 'string', 'CHAIN-ME' => '2', 'DESCRIPTION' => "Multiline\nstuff\n", 'EMPTY' => '', 'FOR-WHO' => "Single multiline\n", )); } public function testOverrideSingle() { $this->assertParse('OverrideSingle.txt', array( 'KEY' => 'New', )); } public function testAppendMultiline() { $this->assertParse('AppendMultiline.txt', array( 'KEY' => "Line1\nLine2\n", )); } public function testDefault() { $this->parser->default = 'NEW-ID'; $this->assertParse('Default.txt', array( 'NEW-ID' => 'DefaultValue', )); } public function testError() { try { $this->parser->parseFile('NoExist.txt'); } catch (HTMLPurifier_ConfigSchema_Exception $e) { $this->assertIdentical($e->getMessage(), 'File NoExist.txt does not exist'); } } public function testParseMultiple() { $result = $this->parser->parseMultiFile(dirname(__FILE__) . '/StringHashParser/Multi.txt'); $this->assertIdentical( $result, array( array( 'ID' => 'Namespace.Directive', 'TYPE' => 'string', 'CHAIN-ME' => '2', 'DESCRIPTION' => "Multiline\nstuff\n", 'FOR-WHO' => "Single multiline\n", ), array( 'ID' => 'Namespace.Directive2', 'TYPE' => 'integer', 'CHAIN-ME' => '3', 'DESCRIPTION' => "M\nstuff\n", 'FOR-WHO' => "Single multiline2\n", ) ) ); } } // vim: et sw=4 sts=4