From d9a5806940194bd600aebe8156e0124bf12aee74 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Wed, 12 Jun 2019 15:05:09 +0100 Subject: [PATCH] resourceloader: Convert test for FileModule versionHash to data provider In prep for the next commit. Change-Id: If08c3d8b769b6ec03faf8ff24f216ce9f670f6ac --- tests/phpunit/ResourceLoaderTestCase.php | 11 +++-- .../ResourceLoaderFileModuleTest.php | 48 +++++++++++++------ 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/tests/phpunit/ResourceLoaderTestCase.php b/tests/phpunit/ResourceLoaderTestCase.php index bd6df5f39c..3e4531cd5c 100644 --- a/tests/phpunit/ResourceLoaderTestCase.php +++ b/tests/phpunit/ResourceLoaderTestCase.php @@ -160,12 +160,13 @@ class ResourceLoaderTestModule extends ResourceLoaderModule { class ResourceLoaderFileTestModule extends ResourceLoaderFileModule { protected $lessVars = []; - public function __construct( $options = [], $test = [] ) { - parent::__construct( $options ); - - foreach ( $test as $key => $value ) { - $this->$key = $value; + public function __construct( $options = [] ) { + if ( isset( $options['lessVars'] ) ) { + $this->lessVars = $options['lessVars']; + unset( $options['lessVars'] ); } + + parent::__construct( $options ); } public function getLessVars( ResourceLoaderContext $context ) { diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php index fbef12ea36..2aa0d27f99 100644 --- a/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php +++ b/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php @@ -347,7 +347,6 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase { $module = new ResourceLoaderFileTestModule( [ 'localBasePath' => $basePath, 'styles' => [ 'styles.less' ], - ], [ 'lessVars' => [ 'foo' => '2px', 'Foo' => '#eeeeee' ] ] ); $module->setName( 'test.less' ); @@ -355,27 +354,48 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase { $this->assertStringEqualsFile( $basePath . '/styles.css', $styles['all'] ); } + public function provideGetVersionHash() { + $a = []; + $b = [ + 'lessVars' => [ 'key' => 'value' ], + ]; + yield 'with and without Less variables' => [ $a, $b, false ]; + + $a = [ + 'lessVars' => [ 'key' => 'value1' ], + ]; + $b = [ + 'lessVars' => [ 'key' => 'value2' ], + ]; + yield 'different Less variables' => [ $a, $b, false ]; + + $x = [ + 'lessVars' => [ 'key' => 'value' ], + ]; + yield 'identical Less variables' => [ $x, $x, true ]; + } + /** + * @dataProvider provideGetVersionHash * @covers ResourceLoaderFileModule::getDefinitionSummary * @covers ResourceLoaderFileModule::getFileHashes */ - public function testGetVersionHash() { + public function testGetVersionHash( $a, $b, $isEqual ) { $context = $this->getResourceLoaderContext(); - // Less variables - $module = new ResourceLoaderFileTestModule(); - $version = $module->getVersionHash( $context ); - $module = new ResourceLoaderFileTestModule( [], [ - 'lessVars' => [ 'key' => 'value' ], - ] ); - $this->assertNotEquals( - $version, - $module->getVersionHash( $context ), - 'Using less variables is significant' + $moduleA = new ResourceLoaderFileTestModule( $a ); + $versionA = $moduleA->getVersionHash( $context ); + $moduleB = new ResourceLoaderFileTestModule( $b ); + $versionB = $moduleB->getVersionHash( $context ); + + $this->assertSame( + $isEqual, + ( $versionA === $versionB ), + 'Whether versions hashes are equal' ); } - public function providerGetScriptPackageFiles() { + public function provideGetScriptPackageFiles() { $basePath = __DIR__ . '/../../data/resourceloader'; $base = [ 'localBasePath' => $basePath ]; $commentScript = file_get_contents( "$basePath/script-comment.js" ); @@ -559,7 +579,7 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase { } /** - * @dataProvider providerGetScriptPackageFiles + * @dataProvider provideGetScriptPackageFiles * @covers ResourceLoaderFileModule::getScript * @covers ResourceLoaderFileModule::getPackageFiles * @covers ResourceLoaderFileModule::expandPackageFiles -- 2.20.1