From: Kunal Mehta Date: Mon, 23 Mar 2015 03:06:28 +0000 (-0700) Subject: TemplateParser: make most functions protected, only expose processTemplate() X-Git-Tag: 1.31.0-rc.0~12022 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=2f88829e1bc914e859be9ef270b3d657ee6a787b;p=lhc%2Fweb%2Fwiklou.git TemplateParser: make most functions protected, only expose processTemplate() All of the other functions expose internal implementation details, which no external caller should ever need. In fact, no external caller does use these functions directly. The TemplateParser::compile() tests were removed as they're simply just checking LightnCandy functionality, which is something the library should be doing. Change-Id: If9003d40315e0e5aa361c174b764b799e3b88c34 --- diff --git a/includes/TemplateParser.php b/includes/TemplateParser.php index 0131fe6945..b105ca493c 100644 --- a/includes/TemplateParser.php +++ b/includes/TemplateParser.php @@ -51,7 +51,7 @@ class TemplateParser { * @return string * @throws UnexpectedValueException Disallows upwards directory traversal via $templateName */ - public function getTemplateFilename( $templateName ) { + protected function getTemplateFilename( $templateName ) { // Prevent upwards directory traversal using same methods as Title::secureAndSplit if ( strpos( $templateName, '.' ) !== false && @@ -77,7 +77,7 @@ class TemplateParser { * @return callable * @throws RuntimeException */ - public function getTemplate( $templateName ) { + protected function getTemplate( $templateName ) { // If a renderer has already been defined for this template, reuse it if ( isset( $this->renderers[$templateName] ) && is_callable( $this->renderers[$templateName] ) ) { return $this->renderers[$templateName]; @@ -145,9 +145,9 @@ class TemplateParser { * @return string PHP code (without 'compile( $fileContents ); if ( !$code ) { throw new RuntimeException( "Could not compile template: {$filename}" ); @@ -167,7 +167,7 @@ class TemplateParser { * @return string PHP code (with 'setExpectedException( $exception ); } - - $tp = new TemplateParser( $dir ); - $path = $tp->getTemplateFilename( $name ); - $this->assertEquals( $result, $path ); + $tp = new TemplateParser( $this->templateDir ); + $this->assertEquals( $result, $tp->processTemplate( $name, $args ) ); } - public static function provideGetTemplateFilename() { + public static function provideProcessTemplate() { return array( array( - 'dir/templates', 'foobar', - 'dir/templates/foobar.mustache', + array(), + "hello world!\n" + ), + array( + 'foobar_args', + array( + 'planet' => 'world', + ), + "hello world!\n", ), array( - 'dir/templates', '../foobar', - '', + array(), + false, 'UnexpectedValueException' ), - ); - } - - /** - * @covers TemplateParser::getTemplate - */ - public function testGetTemplate() { - $tp = new TemplateParser( $this->templateDir ); - $this->assertTrue( is_callable( $tp->getTemplate( 'foobar' ) ) ); - } - - /** - * @covers TemplateParser::compile - */ - public function testTemplateCompilation() { - $this->assertRegExp( - '/^<\?php return function/', - TemplateParser::compile( "test" ), - 'compile a simple mustache template' - ); - } - - /** - * @covers TemplateParser::compile - */ - public function testTemplateCompilationWithVariable() { - $this->assertRegExp( - '/return \'\'\.htmlentities\(\(string\)\(\(isset\(\$in\[\'value\'\]\) && ' - . 'is_array\(\$in\)\) \? \$in\[\'value\'\] : null\), ENT_QUOTES, ' - . '\'UTF-8\'\)\.\'\';/', - TemplateParser::compile( "{{value}}" ), - 'compile a mustache template with an escaped variable' + array( + 'nonexistenttemplate', + array(), + false, + 'RuntimeException', + ) ); } }