Skin: Make skins aware of their registered skin name
[lhc/web/wiklou.git] / tests / phpunit / includes / resourceloader / ResourceLoaderModuleTest.php
index 6057b97..7c7f1cf 100644 (file)
@@ -98,11 +98,11 @@ class ResourceLoaderModuleTest extends ResourceLoaderTestCase {
                return [
                        [
                                "mw.foo()",
-                               "mw.foo();\n",
+                               "mw.foo()\n",
                        ],
                        [
                                "mw.foo();",
-                               "mw.foo();",
+                               "mw.foo();\n",
                        ],
                        [
                                "mw.foo();\n",
@@ -110,15 +110,19 @@ class ResourceLoaderModuleTest extends ResourceLoaderTestCase {
                        ],
                        [
                                "mw.foo()\n",
-                               "mw.foo()\n;\n",
+                               "mw.foo()\n",
                        ],
                        [
                                "mw.foo()\n// mw.bar();",
-                               "mw.foo()\n// mw.bar();",
+                               "mw.foo()\n// mw.bar();\n",
+                       ],
+                       [
+                               "mw.foo()\n// mw.bar()",
+                               "mw.foo()\n// mw.bar()\n",
                        ],
                        [
                                "mw.foo()// mw.bar();",
-                               "mw.foo()// mw.bar();",
+                               "mw.foo()// mw.bar();\n",
                        ],
                ];
        }
@@ -176,4 +180,43 @@ class ResourceLoaderModuleTest extends ResourceLoaderTestCase {
                        'Substitute placeholders'
                );
        }
+
+       /**
+        * @covers ResourceLoaderModule::getHeaders
+        * @covers ResourceLoaderModule::getPreloadLinks
+        */
+       public function testGetHeaders() {
+               $context = $this->getResourceLoaderContext();
+
+               $module = new ResourceLoaderTestModule();
+               $this->assertSame( [], $module->getHeaders( $context ), 'Default' );
+
+               $module = $this->getMockBuilder( ResourceLoaderTestModule::class )
+                       ->setMethods( [ 'getPreloadLinks' ] )->getMock();
+               $module->method( 'getPreloadLinks' )->willReturn( [
+                        'https://example.org/script.js' => [ 'as' => 'script' ],
+               ] );
+               $this->assertSame(
+                       [
+                               'Link: <https://example.org/script.js>;rel=preload;as=script'
+                       ],
+                       $module->getHeaders( $context ),
+                       'Preload one resource'
+               );
+
+               $module = $this->getMockBuilder( ResourceLoaderTestModule::class )
+                       ->setMethods( [ 'getPreloadLinks' ] )->getMock();
+               $module->method( 'getPreloadLinks' )->willReturn( [
+                        'https://example.org/script.js' => [ 'as' => 'script' ],
+                        '/example.png' => [ 'as' => 'image' ],
+               ] );
+               $this->assertSame(
+                       [
+                               'Link: <https://example.org/script.js>;rel=preload;as=script,' .
+                                       '</example.png>;rel=preload;as=image'
+                       ],
+                       $module->getHeaders( $context ),
+                       'Preload two resources'
+               );
+       }
 }