resourceloader: Add support for delivering templates
[lhc/web/wiklou.git] / tests / phpunit / includes / resourceloader / ResourceLoaderFileModuleTest.php
index fb436ee..95da847 100644 (file)
@@ -1,5 +1,8 @@
 <?php
 
+/**
+ * @group ResourceLoader
+ */
 class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
 
        protected function setUp() {
@@ -15,6 +18,76 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                );
        }
 
+       public static function getModules() {
+               $base = array(
+                       'localBasePath' => realpath( dirname( __FILE__ ) ),
+               );
+
+               return array(
+                       'noTemplateModule' => array(),
+
+                       'htmlTemplateModule' => $base + array(
+                               'templates' => array(
+                                       'templates/template.html',
+                                       'templates/template2.html',
+                               )
+                       ),
+
+                       'aliasedHtmlTemplateModule' => $base + array(
+                               'templates' => array(
+                                       'foo.html' => 'templates/template.html',
+                                       'bar.html' => 'templates/template2.html',
+                               )
+                       ),
+
+                       'templateModuleHandlebars' => $base + array(
+                               'templates' => array(
+                                       'templates/template_awesome.handlebars',
+                               ),
+                       ),
+               );
+       }
+
+       public static function providerGetTemplates() {
+               $modules = self::getModules();
+
+               return array(
+                       array(
+                               $modules['noTemplateModule'],
+                               array(),
+                       ),
+                       array(
+                               $modules['templateModuleHandlebars'],
+                               array(
+                                       'templates/template_awesome.handlebars' => "wow\n",
+                               ),
+                       ),
+                       array(
+                               $modules['htmlTemplateModule'],
+                               array(
+                                       'templates/template.html' => "<strong>hello</strong>\n",
+                                       'templates/template2.html' => "<div>goodbye</div>\n",
+                               ),
+                       ),
+                       array(
+                               $modules['aliasedHtmlTemplateModule'],
+                               array(
+                                       'foo.html' => "<strong>hello</strong>\n",
+                                       'bar.html' => "<div>goodbye</div>\n",
+                               ),
+                       ),
+               );
+       }
+
+       public static function providerGetModifiedTime() {
+               $modules = self::getModules();
+
+               return array(
+                       // Check the default value when no templates present in module is 1
+                       array( $modules['noTemplateModule'], 1 ),
+               );
+       }
+
        /**
         * @covers ResourceLoaderFileModule::getAllSkinStyleFiles
         */
@@ -58,4 +131,25 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                        array_map( 'basename', $module->getAllStyleFiles() )
                );
        }
+
+       /**
+        * @dataProvider providerGetTemplates
+        * @covers ResourceLoaderFileModule::getTemplates
+        */
+       public function testGetTemplates( $module, $expected ) {
+               $rl = new ResourceLoaderFileModule( $module );
+
+               $this->assertEquals( $rl->getTemplates(), $expected );
+       }
+
+       /**
+        * @dataProvider providerGetModifiedTime
+        * @covers ResourceLoaderFileModule::getModifiedTime
+        */
+       public function testGetModifiedTime( $module, $expected ) {
+               $rl = new ResourceLoaderFileModule( $module );
+               $ts = $rl->getModifiedTime( new ResourceLoaderContext(
+                       new ResourceLoader, new FauxRequest() ) );
+               $this->assertEquals( $ts, $expected );
+       }
 }