Merge "Type hint against LinkTarget in WatchedItemStore"
[lhc/web/wiklou.git] / tests / phpunit / includes / ContentSecurityPolicyTest.php
index 5f0200d..5d6c067 100644 (file)
@@ -13,6 +13,10 @@ class ContentSecurityPolicyTest extends MediaWikiTestCase {
                        'wgAllowExternalImagesFrom' => [],
                        'wgAllowImageTag' => false,
                        'wgEnableImageWhitelist' => false,
+                       'wgLoadScript' => false,
+                       'wgExtensionAssetsPath' => false,
+                       'wgStylePath' => false,
+                       'wgResourceBasePath' => null,
                        'wgCrossSiteAJAXdomains' => [
                                'sister-site.somewhere.com',
                                '*.wikipedia.org',
@@ -37,7 +41,7 @@ class ContentSecurityPolicyTest extends MediaWikiTestCase {
                // Note, there are some obscure globals which
                // could affect the results which aren't included above.
 
-               RepoGroup::destroySingleton();
+               $this->overrideMwServices();
                $context = RequestContext::getMain();
                $resp = $context->getRequest()->response();
                $conf = $context->getConfig();
@@ -47,6 +51,29 @@ class ContentSecurityPolicyTest extends MediaWikiTestCase {
                return parent::setUp();
        }
 
+       /**
+        * @covers ContentSecurityPolicy::getAdditionalSelfUrls
+        */
+       public function testGetAdditionalSelfUrlsRespectsUrlSettings() {
+               $this->setMwGlobals( 'wgLoadScript', 'https://wgLoadScript.example.org/load.php' );
+               $this->setMwGlobals( 'wgExtensionAssetsPath',
+                       'https://wgExtensionAssetsPath.example.org/assets/' );
+               $this->setMwGlobals( 'wgStylePath', 'https://wgStylePath.example.org/style/' );
+               $this->setMwGlobals( 'wgResourceBasePath', 'https://wgResourceBasePath.example.org/resources/' );
+
+               $this->assertEquals(
+                       [
+                               'https://upload.wikimedia.org',
+                               'https://commons.wikimedia.org',
+                               'https://wgLoadScript.example.org',
+                               'https://wgExtensionAssetsPath.example.org',
+                               'https://wgStylePath.example.org',
+                               'https://wgResourceBasePath.example.org',
+                       ],
+                       array_values( $this->csp->getAdditionalSelfUrls() )
+               );
+       }
+
        /**
         * @dataProvider providerFalsePositiveBrowser
         * @covers ContentSecurityPolicy::falsePositiveBrowser