Release notes for Iabf4873f
[mediawiki.git] / tests / phpunit / includes / ResourceLoaderModuleTest.php
blob46433191fb5816c2e64a0fa7e5278b45f2a43542
1 <?php
3 class ResourceLoaderModuleTest extends MediaWikiTestCase {
5 protected static function getResourceLoaderContext() {
6 $resourceLoader = new ResourceLoader();
7 $request = new FauxRequest( array(
8 'debug' => 'false',
9 'lang' => 'en',
10 'modules' => 'startup',
11 'only' => 'scripts',
12 'skin' => 'vector',
13 ) );
14 return new ResourceLoaderContext( $resourceLoader, $request );
17 /**
18 * @covers ResourceLoaderModule::getDefinitionSummary
19 * @covers ResourceLoaderFileModule::getDefinitionSummary
21 public function testDefinitionSummary() {
22 $context = self::getResourceLoaderContext();
24 $baseParams = array(
25 'scripts' => array( 'foo.js', 'bar.js' ),
26 'dependencies' => array( 'jquery', 'mediawiki' ),
27 'messages' => array( 'hello', 'world' ),
30 $module = new ResourceLoaderFileModule( $baseParams );
32 $jsonSummary = json_encode( $module->getDefinitionSummary( $context ) );
34 // Exactly the same
35 $module = new ResourceLoaderFileModule( $baseParams );
37 $this->assertEquals(
38 $jsonSummary,
39 json_encode( $module->getDefinitionSummary( $context ) ),
40 'Instance is insignificant'
43 // Re-order dependencies
44 $module = new ResourceLoaderFileModule( array(
45 'dependencies' => array( 'mediawiki', 'jquery' ),
46 ) + $baseParams );
48 $this->assertEquals(
49 $jsonSummary,
50 json_encode( $module->getDefinitionSummary( $context ) ),
51 'Order of dependencies is insignificant'
54 // Re-order messages
55 $module = new ResourceLoaderFileModule( array(
56 'messages' => array( 'world', 'hello' ),
57 ) + $baseParams );
59 $this->assertEquals(
60 $jsonSummary,
61 json_encode( $module->getDefinitionSummary( $context ) ),
62 'Order of messages is insignificant'
65 // Re-order scripts
66 $module = new ResourceLoaderFileModule( array(
67 'scripts' => array( 'bar.js', 'foo.js' ),
68 ) + $baseParams );
70 $this->assertNotEquals(
71 $jsonSummary,
72 json_encode( $module->getDefinitionSummary( $context ) ),
73 'Order of scripts is significant'
76 // Subclass
77 $module = new ResourceLoaderFileModuleTestModule( $baseParams );
79 $this->assertNotEquals(
80 $jsonSummary,
81 json_encode( $module->getDefinitionSummary( $context ) ),
82 'Class is significant'
87 class ResourceLoaderFileModuleTestModule extends ResourceLoaderFileModule {}