2015-06-10 17:43:32 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @group ResourceLoader
|
2016-08-29 21:34:57 +00:00
|
|
|
* @covers DerivativeResourceLoaderContext
|
2015-06-10 17:43:32 +00:00
|
|
|
*/
|
2018-02-17 12:29:13 +00:00
|
|
|
class DerivativeResourceLoaderContextTest extends PHPUnit\Framework\TestCase {
|
2015-06-10 17:43:32 +00:00
|
|
|
|
2017-12-29 23:22:37 +00:00
|
|
|
use MediaWikiCoversValidator;
|
|
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
protected static function getContext() {
|
2016-02-17 09:09:32 +00:00
|
|
|
$request = new FauxRequest( [
|
2015-06-10 17:43:32 +00:00
|
|
|
'lang' => 'zh',
|
|
|
|
|
'modules' => 'test.context',
|
|
|
|
|
'only' => 'scripts',
|
|
|
|
|
'skin' => 'fallback',
|
|
|
|
|
'target' => 'test',
|
2016-02-17 09:09:32 +00:00
|
|
|
] );
|
2016-08-29 21:34:57 +00:00
|
|
|
return new ResourceLoaderContext( new ResourceLoader(), $request );
|
2015-06-10 17:43:32 +00:00
|
|
|
}
|
|
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
public function testGetInherited() {
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
2015-06-10 17:43:32 +00:00
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
// Request parameters
|
|
|
|
|
$this->assertEquals( $derived->getDebug(), false );
|
2015-06-10 17:43:32 +00:00
|
|
|
$this->assertEquals( $derived->getLanguage(), 'zh' );
|
2016-02-17 09:09:32 +00:00
|
|
|
$this->assertEquals( $derived->getModules(), [ 'test.context' ] );
|
2015-06-10 17:43:32 +00:00
|
|
|
$this->assertEquals( $derived->getOnly(), 'scripts' );
|
|
|
|
|
$this->assertEquals( $derived->getSkin(), 'fallback' );
|
2016-08-29 21:34:57 +00:00
|
|
|
$this->assertEquals( $derived->getUser(), null );
|
|
|
|
|
|
|
|
|
|
// Misc
|
|
|
|
|
$this->assertEquals( $derived->getDirection(), 'ltr' );
|
2015-11-17 21:15:24 +00:00
|
|
|
$this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
|
2015-06-10 17:43:32 +00:00
|
|
|
}
|
|
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
public function testModules() {
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
|
|
|
|
|
|
|
|
|
$derived->setModules( [ 'test.override' ] );
|
|
|
|
|
$this->assertEquals( $derived->getModules(), [ 'test.override' ] );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testLanguage() {
|
|
|
|
|
$context = self::getContext();
|
2015-06-10 17:43:32 +00:00
|
|
|
$derived = new DerivativeResourceLoaderContext( $context );
|
|
|
|
|
|
|
|
|
|
$derived->setLanguage( 'nl' );
|
|
|
|
|
$this->assertEquals( $derived->getLanguage(), 'nl' );
|
2016-08-29 21:34:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testDirection() {
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
|
|
|
|
|
|
|
|
|
$derived->setLanguage( 'nl' );
|
|
|
|
|
$this->assertEquals( $derived->getDirection(), 'ltr' );
|
2015-06-13 05:00:33 +00:00
|
|
|
|
|
|
|
|
$derived->setLanguage( 'he' );
|
|
|
|
|
$this->assertEquals( $derived->getDirection(), 'rtl' );
|
2016-08-29 21:34:57 +00:00
|
|
|
|
|
|
|
|
$derived->setDirection( 'ltr' );
|
|
|
|
|
$this->assertEquals( $derived->getDirection(), 'ltr' );
|
2015-06-10 17:43:32 +00:00
|
|
|
}
|
|
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
public function testSkin() {
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
2015-06-10 17:43:32 +00:00
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
$derived->setSkin( 'override' );
|
|
|
|
|
$this->assertEquals( $derived->getSkin(), 'override' );
|
2015-06-10 17:43:32 +00:00
|
|
|
}
|
|
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
public function testUser() {
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
|
|
|
|
|
|
|
|
|
$derived->setUser( 'Example' );
|
|
|
|
|
$this->assertEquals( $derived->getUser(), 'Example' );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testDebug() {
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
|
|
|
|
|
|
|
|
|
$derived->setDebug( true );
|
|
|
|
|
$this->assertEquals( $derived->getDebug(), true );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testOnly() {
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
2015-06-10 17:43:32 +00:00
|
|
|
|
|
|
|
|
$derived->setOnly( 'styles' );
|
|
|
|
|
$this->assertEquals( $derived->getOnly(), 'styles' );
|
|
|
|
|
|
|
|
|
|
$derived->setOnly( null );
|
|
|
|
|
$this->assertEquals( $derived->getOnly(), null );
|
|
|
|
|
}
|
|
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
public function testVersion() {
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
2015-06-10 17:43:32 +00:00
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
$derived->setVersion( 'hw1' );
|
|
|
|
|
$this->assertEquals( $derived->getVersion(), 'hw1' );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testRaw() {
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
|
|
|
|
|
|
|
|
|
$derived->setRaw( true );
|
|
|
|
|
$this->assertEquals( $derived->getRaw(), true );
|
2015-06-10 17:43:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetHash() {
|
2016-08-29 21:34:57 +00:00
|
|
|
$derived = new DerivativeResourceLoaderContext( self::getContext() );
|
|
|
|
|
|
|
|
|
|
$this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
|
2015-06-10 17:43:32 +00:00
|
|
|
|
|
|
|
|
$derived->setLanguage( 'nl' );
|
2016-08-29 21:34:57 +00:00
|
|
|
$derived->setUser( 'Example' );
|
2015-06-10 17:43:32 +00:00
|
|
|
// Assert that subclass is able to clear parent class "hash" member
|
2016-08-29 21:34:57 +00:00
|
|
|
$this->assertEquals( $derived->getHash(), 'nl|fallback||Example|scripts|||||' );
|
2015-06-10 17:43:32 +00:00
|
|
|
}
|
|
|
|
|
|
2016-08-29 21:34:57 +00:00
|
|
|
public function testAccessors() {
|
|
|
|
|
$context = self::getContext();
|
|
|
|
|
$derived = new DerivativeResourceLoaderContext( $context );
|
|
|
|
|
$this->assertSame( $derived->getRequest(), $context->getRequest() );
|
|
|
|
|
$this->assertSame( $derived->getResourceLoader(), $context->getResourceLoader() );
|
|
|
|
|
}
|
2015-06-10 17:43:32 +00:00
|
|
|
}
|