4 * @group ResourceLoader
5 * @covers DerivativeResourceLoaderContext
7 class DerivativeResourceLoaderContextTest
extends PHPUnit_Framework_TestCase
{
9 use MediaWikiCoversValidator
;
11 protected static function getContext() {
12 $request = new FauxRequest( [
14 'modules' => 'test.context',
19 return new ResourceLoaderContext( new ResourceLoader(), $request );
22 public function testGetInherited() {
23 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
26 $this->assertEquals( $derived->getDebug(), false );
27 $this->assertEquals( $derived->getLanguage(), 'zh' );
28 $this->assertEquals( $derived->getModules(), [ 'test.context' ] );
29 $this->assertEquals( $derived->getOnly(), 'scripts' );
30 $this->assertEquals( $derived->getSkin(), 'fallback' );
31 $this->assertEquals( $derived->getUser(), null );
34 $this->assertEquals( $derived->getDirection(), 'ltr' );
35 $this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
38 public function testModules() {
39 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
41 $derived->setModules( [ 'test.override' ] );
42 $this->assertEquals( $derived->getModules(), [ 'test.override' ] );
45 public function testLanguage() {
46 $context = self
::getContext();
47 $derived = new DerivativeResourceLoaderContext( $context );
49 $derived->setLanguage( 'nl' );
50 $this->assertEquals( $derived->getLanguage(), 'nl' );
53 public function testDirection() {
54 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
56 $derived->setLanguage( 'nl' );
57 $this->assertEquals( $derived->getDirection(), 'ltr' );
59 $derived->setLanguage( 'he' );
60 $this->assertEquals( $derived->getDirection(), 'rtl' );
62 $derived->setDirection( 'ltr' );
63 $this->assertEquals( $derived->getDirection(), 'ltr' );
66 public function testSkin() {
67 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
69 $derived->setSkin( 'override' );
70 $this->assertEquals( $derived->getSkin(), 'override' );
73 public function testUser() {
74 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
76 $derived->setUser( 'Example' );
77 $this->assertEquals( $derived->getUser(), 'Example' );
80 public function testDebug() {
81 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
83 $derived->setDebug( true );
84 $this->assertEquals( $derived->getDebug(), true );
87 public function testOnly() {
88 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
90 $derived->setOnly( 'styles' );
91 $this->assertEquals( $derived->getOnly(), 'styles' );
93 $derived->setOnly( null );
94 $this->assertEquals( $derived->getOnly(), null );
97 public function testVersion() {
98 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
100 $derived->setVersion( 'hw1' );
101 $this->assertEquals( $derived->getVersion(), 'hw1' );
104 public function testRaw() {
105 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
107 $derived->setRaw( true );
108 $this->assertEquals( $derived->getRaw(), true );
111 public function testGetHash() {
112 $derived = new DerivativeResourceLoaderContext( self
::getContext() );
114 $this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
116 $derived->setLanguage( 'nl' );
117 $derived->setUser( 'Example' );
118 // Assert that subclass is able to clear parent class "hash" member
119 $this->assertEquals( $derived->getHash(), 'nl|fallback||Example|scripts|||||' );
122 public function testAccessors() {
123 $context = self
::getContext();
124 $derived = new DerivativeResourceLoaderContext( $context );
125 $this->assertSame( $derived->getRequest(), $context->getRequest() );
126 $this->assertSame( $derived->getResourceLoader(), $context->getResourceLoader() );