Merge "resourceloader: Add @covers for stripBom and makeModuleResponse tests"
[lhc/web/wiklou.git] / tests / phpunit / includes / resourceloader / ResourceLoaderTest.php
index 0833047..f00253b 100644 (file)
@@ -113,6 +113,58 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
                );
        }
 
+       public function provideTestIsFileModule() {
+               $fileModuleObj = $this->getMockBuilder( ResourceLoaderFileModule::class )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               return [
+                       'object' => [ false,
+                               new ResourceLoaderTestModule()
+                       ],
+                       'FileModule object' => [ false,
+                               $fileModuleObj
+                       ],
+                       'simple empty' => [ true,
+                               []
+                       ],
+                       'simple scripts' => [ true,
+                               [ 'scripts' => 'example.js' ]
+                       ],
+                       'simple scripts, raw and targets' => [ true, [
+                               'scripts' => [ 'a.js', 'b.js' ],
+                               'raw' => true,
+                               'targets' => [ 'desktop', 'mobile' ],
+                       ] ],
+                       'FileModule' => [ true,
+                               [ 'class' => ResourceLoaderFileModule::class, 'scripts' => 'example.js' ]
+                       ],
+                       'TestModule' => [ false,
+                               [ 'class' => ResourceLoaderTestModule::class, 'scripts' => 'example.js' ]
+                       ],
+                       'SkinModule (FileModule subclass)' => [ true,
+                               [ 'class' => ResourceLoaderSkinModule::class, 'scripts' => 'example.js' ]
+                       ],
+                       'JqueryMsgModule (FileModule subclass)' => [ true, [
+                               'class' => ResourceLoaderJqueryMsgModule::class,
+                               'scripts' => 'example.js',
+                       ] ],
+                       'WikiModule' => [ false, [
+                               'class' => ResourceLoaderWikiModule::class,
+                               'scripts' => [ 'MediaWiki:Example.js' ],
+                       ] ],
+               ];
+       }
+
+       /**
+        * @dataProvider provideTestIsFileModule
+        * @covers ResourceLoader::isFileModule
+        */
+       public function testIsFileModule( $expected, $module ) {
+               $rl = TestingAccessWrapper::newFromObject( new EmptyResourceLoader() );
+               $rl->register( 'test', $module );
+               $this->assertSame( $expected, $rl->isFileModule( 'test' ) );
+       }
+
        /**
         * @covers ResourceLoader::isModuleRegistered
         */
@@ -147,7 +199,7 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
         * @covers ResourceLoader::getModule
         */
        public function testGetModuleFactory() {
-               $factory = function( array $info ) {
+               $factory = function ( array $info ) {
                        $this->assertArrayHasKey( 'kitten', $info );
                        return new ResourceLoaderTestModule( $info );
                };
@@ -555,6 +607,8 @@ mw.example();
         * Verify that when building module content in a load.php response,
         * an exception from one module will not break script output from
         * other modules.
+        *
+        * @covers ResourceLoader::makeModuleResponse
         */
        public function testMakeModuleResponseError() {
                $modules = [
@@ -591,6 +645,8 @@ mw.example();
         * Verify that when building the startup module response,
         * an exception from one module class will not break the entire
         * startup module response. See T152266.
+        *
+        * @covers ResourceLoader::makeModuleResponse
         */
        public function testMakeModuleResponseStartupError() {
                $rl = new EmptyResourceLoader();