wiki.techinc.nl/tests/phpunit/includes/ResourceLoader/OOUIImageModuleTest.php
Timo Tijhof 11f729301b ResourceLoader: Hoist and simplify @covers in test cases
I consider it busywork to maintain this, for no tangible benefit.
Limiting the credited coverage to a class is limiting enough to
exclude unintended coverage from reports. Especially as this
helps ensure tracking coverage correctly for implementation details
such as helper methods and internal methods that do not warrant
their own test as that would defeat the purpose of tests exercising
the contract and demonstrating good usage.

Change-Id: Icf865f15cbd86585bbc02fc4943a960efb40c0eb
2022-08-23 23:59:17 +00:00

65 lines
1.7 KiB
PHP

<?php
namespace MediaWiki\Tests\ResourceLoader;
use ExtensionRegistry;
use MediaWiki\ResourceLoader\OOUIImageModule;
use Psr\Container\ContainerInterface;
use ResourceLoaderTestCase;
use SkinFactory;
use Wikimedia\ObjectFactory\ObjectFactory;
/**
* @group ResourceLoader
* @covers \MediaWiki\ResourceLoader\OOUIImageModule
*/
class OOUIImageModuleTest extends ResourceLoaderTestCase {
public function testNonDefaultSkin() {
$module = new OOUIImageModule( [
'class' => OOUIImageModule::class,
'name' => 'icons',
'rootPath' => 'tests/phpunit/data/resourceloader/oouiimagemodule',
] );
// Pretend that 'fakemonobook' is a real skin using the Apex theme
$skinFactory = new SkinFactory(
new ObjectFactory( $this->createMock( ContainerInterface::class ) ), []
);
$skinFactory->register(
'fakemonobook',
'FakeMonoBook',
[]
);
$this->setService( 'SkinFactory', $skinFactory );
$reset = ExtensionRegistry::getInstance()->setAttributeForTest(
'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(
'/fallback/',
$styles['all'],
'Generated styles use the default skin (link)'
);
}
}