TemplateParser: Don't fatal on cache misses
[lhc/web/wiklou.git] / tests / phpunit / includes / TemplateParserTest.php
index ccfccd1..f884a8e 100644 (file)
@@ -4,6 +4,58 @@
  * @group Templates
  */
 class TemplateParserTest extends MediaWikiTestCase {
+
+       protected $templateDir;
+
+       protected function setUp() {
+               parent::setUp();
+
+               $this->setMwGlobals( array(
+                       'wgSecretKey' => 'foo',
+                       'wgMemc' => new EmptyBagOStuff(),
+               ) );
+
+               $this->templateDir = dirname( __DIR__ ) . '/data/templates/';
+       }
+
+       /**
+        * @covers TemplateParser::getTemplateFilename
+        * @dataProvider provideGetTemplateFilename
+        */
+       public function testGetTemplateFilename( $dir, $name, $result, $exception = false ) {
+               if ( $exception ) {
+                       $this->setExpectedException( $exception );
+               }
+
+               $tp = new TemplateParser( $dir );
+               $path = $tp->getTemplateFilename( $name );
+               $this->assertEquals( $result, $path );
+       }
+
+       public static function provideGetTemplateFilename() {
+               return array(
+                       array(
+                               'dir/templates',
+                               'foobar',
+                               'dir/templates/foobar.mustache',
+                       ),
+                       array(
+                               'dir/templates',
+                               '../foobar',
+                               '',
+                               'UnexpectedValueException'
+                       ),
+               );
+       }
+
+       /**
+        * @covers TemplateParser::getTemplate
+        */
+       public function testGetTemplate() {
+               $tp = new TemplateParser( $this->templateDir );
+               $this->assertTrue( is_callable( $tp->getTemplate( 'foobar' ) ) );
+       }
+
        /**
         * @covers TemplateParser::compile
         */