/** * @covers ResourceLoaderModule::getVersionHash */ public function testGetVersionHash() { $context = $this->getResourceLoaderContext(); $baseParams = ['scripts' => ['foo.js', 'bar.js'], 'dependencies' => ['jquery', 'mediawiki'], 'messages' => ['hello', 'world']]; $module = new ResourceLoaderFileModule($baseParams); $version = json_encode($module->getVersionHash($context)); // Exactly the same $module = new ResourceLoaderFileModule($baseParams); $this->assertEquals($version, json_encode($module->getVersionHash($context)), 'Instance is insignificant'); // Re-order dependencies $module = new ResourceLoaderFileModule(['dependencies' => ['mediawiki', 'jquery']] + $baseParams); $this->assertEquals($version, json_encode($module->getVersionHash($context)), 'Order of dependencies is insignificant'); // Re-order messages $module = new ResourceLoaderFileModule(['messages' => ['world', 'hello']] + $baseParams); $this->assertEquals($version, json_encode($module->getVersionHash($context)), 'Order of messages is insignificant'); // Re-order scripts $module = new ResourceLoaderFileModule(['scripts' => ['bar.js', 'foo.js']] + $baseParams); $this->assertNotEquals($version, json_encode($module->getVersionHash($context)), 'Order of scripts is significant'); // Subclass $module = new ResourceLoaderFileModuleTestModule($baseParams); $this->assertNotEquals($version, json_encode($module->getVersionHash($context)), 'Class is significant'); }