summaryrefslogtreecommitdiff
path: root/www/wiki/tests/phpunit/includes/resourceloader/ResourceLoaderOOUIImageModuleTest.php
blob: ea220f1148345da037847172e2c66838107ab8e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php

/**
 * @group ResourceLoader
 */
class ResourceLoaderOOUIImageModuleTest extends ResourceLoaderTestCase {

	/**
	 * @covers ResourceLoaderOOUIImageModule::loadFromDefinition
	 */
	public function testNonDefaultSkin() {
		$module = new ResourceLoaderOOUIImageModule( [
			'class' => ResourceLoaderOOUIImageModule::class,
			'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::class, '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)'
		);
	}

}