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