/** * @covers ResourceLoaderModule::getDefinitionSummary * @covers ResourceLoaderFileModule::getDefinitionSummary */ public function testDefinitionSummary() { $context = $this->getResourceLoaderContext(); $baseParams = array('scripts' => array('foo.js', 'bar.js'), 'dependencies' => array('jquery', 'mediawiki'), 'messages' => array('hello', 'world')); $module = new ResourceLoaderFileModule($baseParams); $jsonSummary = json_encode($module->getDefinitionSummary($context)); // Exactly the same $module = new ResourceLoaderFileModule($baseParams); $this->assertEquals($jsonSummary, json_encode($module->getDefinitionSummary($context)), 'Instance is insignificant'); // Re-order dependencies $module = new ResourceLoaderFileModule(array('dependencies' => array('mediawiki', 'jquery')) + $baseParams); $this->assertEquals($jsonSummary, json_encode($module->getDefinitionSummary($context)), 'Order of dependencies is insignificant'); // Re-order messages $module = new ResourceLoaderFileModule(array('messages' => array('world', 'hello')) + $baseParams); $this->assertEquals($jsonSummary, json_encode($module->getDefinitionSummary($context)), 'Order of messages is insignificant'); // Re-order scripts $module = new ResourceLoaderFileModule(array('scripts' => array('bar.js', 'foo.js')) + $baseParams); $this->assertNotEquals($jsonSummary, json_encode($module->getDefinitionSummary($context)), 'Order of scripts is significant'); // Subclass $module = new ResourceLoaderFileModuleTestModule($baseParams); $this->assertNotEquals($jsonSummary, json_encode($module->getDefinitionSummary($context)), 'Class is significant'); }
/** * @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'); }