wiki.techinc.nl/tests/phpunit/includes/resourceloader/ResourceLoaderModuleTest.php
umherirrender 63dc5abc9a Fixed spacing
- Added space after reserved words: function, foreach, if
- Combined 'else if' into elseif
- Added braces to one-line statements
- Added spaces after comma, before parentheses

Change-Id: Ie5bbf680d6fbe0f0872dab2700c16b1394906a72
2014-08-27 18:31:50 +02:00

132 lines
3.1 KiB
PHP

<?php
class ResourceLoaderModuleTest extends ResourceLoaderTestCase {
protected function setUp() {
parent::setUp();
// The return value of the closure shouldn't matter since this test should
// never call it
SkinFactory::getDefaultInstance()->register(
'fakeskin',
'FakeSkin',
function () {
}
);
}
/**
* @covers ResourceLoaderFileModule::getAllSkinStyleFiles
*/
public function testGetAllSkinStyleFiles() {
$context = self::getResourceLoaderContext();
$baseParams = array(
'scripts' => array(
'foo.js',
'bar.js',
),
'styles' => array(
'foo.css',
'bar.css' => array( 'media' => 'print' ),
'screen.less' => array( 'media' => 'screen' ),
'screen-query.css' => array( 'media' => 'screen and (min-width: 400px)' ),
),
'skinStyles' => array(
'default' => 'quux-fallback.less',
'fakeskin' => array(
'baz-vector.css',
'quux-vector.less',
),
),
'messages' => array(
'hello',
'world',
),
);
$module = new ResourceLoaderFileModule( $baseParams );
$this->assertEquals(
array(
'foo.css',
'baz-vector.css',
'quux-vector.less',
'quux-fallback.less',
'bar.css',
'screen.less',
'screen-query.css',
),
array_map( 'basename', $module->getAllStyleFiles() )
);
}
/**
* @covers ResourceLoaderModule::getDefinitionSummary
* @covers ResourceLoaderFileModule::getDefinitionSummary
*/
public function testDefinitionSummary() {
$context = self::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'
);
}
}