]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - tests/phpunit/includes/resourceloader/ResourceLoaderOOUIImageModuleTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / resourceloader / ResourceLoaderOOUIImageModuleTest.php
diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderOOUIImageModuleTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderOOUIImageModuleTest.php
new file mode 100644 (file)
index 0000000..491fff6
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * @group ResourceLoader
+ */
+class ResourceLoaderOOUIImageModuleTest extends ResourceLoaderTestCase {
+
+       /**
+        * @covers ResourceLoaderOOUIImageModule::loadFromDefinition
+        */
+       public function testNonDefaultSkin() {
+               $module = new ResourceLoaderOOUIImageModule( [
+                       'class' => 'ResourceLoaderOOUIImageModule',
+                       'name' => 'icons',
+                       'rootPath' => 'tests/phpunit/data/resourceloader/oouiimagemodule',
+               ] );
+
+               // Pretend that 'fakemonobook' is a real skin using the Apex theme
+               SkinFactory::getDefaultInstance()->register(
+                       'fakemonobook',
+                       'FakeMonoBook',
+                       function () {
+                       }
+               );
+               $r = new ReflectionMethod( 'ExtensionRegistry', 'exportExtractedData' );
+               $r->setAccessible( true );
+               $r->invoke( ExtensionRegistry::getInstance(), [
+                       'globals' => [],
+                       'defines' => [],
+                       'callbacks' => [],
+                       'credits' => [],
+                       'autoloaderPaths' => [],
+                       'attributes' => [
+                               'SkinOOUIThemes' => [
+                                       'fakemonobook' => 'Apex',
+                               ],
+                       ],
+               ] );
+
+               $styles = $module->getStyles( $this->getResourceLoaderContext( [ 'skin' => 'fakemonobook' ] ) );
+               $this->assertRegExp(
+                       '/stu-apex/',
+                       $styles['all'],
+                       'Generated styles use the non-default image (embed)'
+               );
+               $this->assertRegExp(
+                       '/fakemonobook/',
+                       $styles['all'],
+                       'Generated styles use the non-default image (link)'
+               );
+
+               $styles = $module->getStyles( $this->getResourceLoaderContext() );
+               $this->assertRegExp(
+                       '/stu-wikimediaui/',
+                       $styles['all'],
+                       'Generated styles use the default image (embed)'
+               );
+               $this->assertRegExp(
+                       '/vector/',
+                       $styles['all'],
+                       'Generated styles use the default image (link)'
+               );
+       }
+
+}