/** * @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'); }