Merge "Fix \n handling for HTMLUsersMultiselectField"
[lhc/web/wiklou.git] / tests / phpunit / includes / resourceloader / ResourceLoaderFileModuleTest.php
index 4a3b90a..ded56e9 100644 (file)
@@ -31,9 +31,7 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                                'deprecated' => true,
                        ],
                        'deprecatedTomorrow' => $base + [
-                               'deprecated' => [
-                                       'message' => 'Will be removed tomorrow.'
-                               ],
+                               'deprecated' => 'Will be removed tomorrow.'
                        ],
 
                        'htmlTemplateModule' => $base + [
@@ -43,6 +41,12 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                                ]
                        ],
 
+                       'htmlTemplateUnknown' => $base + [
+                               'templates' => [
+                                       'templates/notfound.html',
+                               ]
+                       ],
+
                        'aliasedHtmlTemplateModule' => $base + [
                                'templates' => [
                                        'foo.html' => 'templates/template.html',
@@ -128,10 +132,30 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
         */
        public function testDeprecatedModules( $name, $expected ) {
                $modules = self::getModules();
-               $rl = new ResourceLoaderFileModule( $modules[$name] );
-               $rl->setName( $name );
+               $module = new ResourceLoaderFileModule( $modules[$name] );
+               $module->setName( $name );
                $ctx = $this->getResourceLoaderContext();
-               $this->assertEquals( $rl->getScript( $ctx ), $expected );
+               $this->assertEquals( $module->getScript( $ctx ), $expected );
+       }
+
+       /**
+        * @covers ResourceLoaderFileModule::getScript
+        */
+       public function testGetScript() {
+               $module = new ResourceLoaderFileModule( [
+                       'localBasePath' => __DIR__ . '/../../data/resourceloader',
+                       'scripts' => [ 'script-nosemi.js', 'script-comment.js' ],
+               ] );
+               $module->setName( 'testing' );
+               $ctx = $this->getResourceLoaderContext();
+               $this->assertEquals(
+                       "/* eslint-disable */\nmw.foo()\n" .
+                       "\n" .
+                       "/* eslint-disable */\nmw.foo()\n// mw.bar();\n" .
+                       "\n",
+                       $module->getScript( $ctx ),
+                       'scripts are concatenated with a new-line'
+               );
        }
 
        /**
@@ -261,6 +285,10 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                                        'bar.html' => "<div>goodbye</div>\n",
                                ],
                        ],
+                       [
+                               $modules['htmlTemplateUnknown'],
+                               false,
+                       ],
                ];
        }
 
@@ -272,9 +300,17 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                $rl = new ResourceLoaderFileModule( $module );
                $rl->setName( 'testing' );
 
-               $this->assertEquals( $rl->getTemplates(), $expected );
+               if ( $expected === false ) {
+                       $this->setExpectedException( MWException::class );
+                       $rl->getTemplates();
+               } else {
+                       $this->assertEquals( $rl->getTemplates(), $expected );
+               }
        }
 
+       /**
+        * @covers ResourceLoaderFileModule::stripBom
+        */
        public function testBomConcatenation() {
                $basePath = __DIR__ . '/../../data/css';
                $testModule = new ResourceLoaderFileModule( [