X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fphpunit%2Fincludes%2Fresourceloader%2FResourceLoaderFileModuleTest.php;h=e82bab72df53d522d8916bb0921b034ec004e4f3;hb=28f07c0a7f6a16adfcc65cdab64eeeab6aba07b1;hp=7d12e59ee230e579a62862e6a4ca5e71e6eb2bed;hpb=3cb14f56bdf3271769a5866f9dcaad56bf873aea;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php index 7d12e59ee2..e82bab72df 100644 --- a/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php +++ b/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php @@ -41,6 +41,12 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase { ] ], + 'htmlTemplateUnknown' => $base + [ + 'templates' => [ + 'templates/notfound.html', + ] + ], + 'aliasedHtmlTemplateModule' => $base + [ 'templates' => [ 'foo.html' => 'templates/template.html', @@ -126,10 +132,30 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase { */ public function testDeprecatedModules( $name, $expected ) { $modules = self::getModules(); - $rl = new ResourceLoaderFileModule( $modules[$name] ); - $rl->setName( $name ); + $module = new ResourceLoaderFileModule( $modules[$name] ); + $module->setName( $name ); $ctx = $this->getResourceLoaderContext(); - $this->assertEquals( $rl->getScript( $ctx ), $expected ); + $this->assertEquals( $module->getScript( $ctx ), $expected ); + } + + /** + * @covers ResourceLoaderFileModule::getScript + */ + public function testGetScript() { + $module = new ResourceLoaderFileModule( [ + 'localBasePath' => __DIR__ . '/../../data/resourceloader', + 'scripts' => [ 'script-nosemi.js', 'script-comment.js' ], + ] ); + $module->setName( 'testing' ); + $ctx = $this->getResourceLoaderContext(); + $this->assertEquals( + "/* eslint-disable */\nmw.foo()\n" . + "\n" . + "/* eslint-disable */\nmw.foo()\n// mw.bar();\n" . + "\n", + $module->getScript( $ctx ), + 'scripts are concatenated with a new-line' + ); } /** @@ -259,6 +285,10 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase { 'bar.html' => "
goodbye
\n", ], ], + [ + $modules['htmlTemplateUnknown'], + false, + ], ]; } @@ -270,9 +300,17 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase { $rl = new ResourceLoaderFileModule( $module ); $rl->setName( 'testing' ); - $this->assertEquals( $rl->getTemplates(), $expected ); + if ( $expected === false ) { + $this->setExpectedException( MWException::class ); + $rl->getTemplates(); + } else { + $this->assertEquals( $rl->getTemplates(), $expected ); + } } + /** + * @covers ResourceLoaderFileModule::stripBom + */ public function testBomConcatenation() { $basePath = __DIR__ . '/../../data/css'; $testModule = new ResourceLoaderFileModule( [ @@ -293,4 +331,23 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase { 'Leading BOM removed when concatenating files' ); } + + /** + * @covers ResourceLoaderFileModule::getDefinitionSummary + */ + public function testGetVersionHash() { + $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' + ); + } }