]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / resourceloader / DerivativeResourceLoaderContextTest.php
1 <?php
2
3 /**
4  * @group ResourceLoader
5  * @covers DerivativeResourceLoaderContext
6  */
7 class DerivativeResourceLoaderContextTest extends PHPUnit_Framework_TestCase {
8
9         protected static function getContext() {
10                 $request = new FauxRequest( [
11                                 'lang' => 'zh',
12                                 'modules' => 'test.context',
13                                 'only' => 'scripts',
14                                 'skin' => 'fallback',
15                                 'target' => 'test',
16                 ] );
17                 return new ResourceLoaderContext( new ResourceLoader(), $request );
18         }
19
20         public function testGetInherited() {
21                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
22
23                 // Request parameters
24                 $this->assertEquals( $derived->getDebug(), false );
25                 $this->assertEquals( $derived->getLanguage(), 'zh' );
26                 $this->assertEquals( $derived->getModules(), [ 'test.context' ] );
27                 $this->assertEquals( $derived->getOnly(), 'scripts' );
28                 $this->assertEquals( $derived->getSkin(), 'fallback' );
29                 $this->assertEquals( $derived->getUser(), null );
30
31                 // Misc
32                 $this->assertEquals( $derived->getDirection(), 'ltr' );
33                 $this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
34         }
35
36         public function testModules() {
37                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
38
39                 $derived->setModules( [ 'test.override' ] );
40                 $this->assertEquals( $derived->getModules(), [ 'test.override' ] );
41         }
42
43         public function testLanguage() {
44                 $context = self::getContext();
45                 $derived = new DerivativeResourceLoaderContext( $context );
46
47                 $derived->setLanguage( 'nl' );
48                 $this->assertEquals( $derived->getLanguage(), 'nl' );
49         }
50
51         public function testDirection() {
52                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
53
54                 $derived->setLanguage( 'nl' );
55                 $this->assertEquals( $derived->getDirection(), 'ltr' );
56
57                 $derived->setLanguage( 'he' );
58                 $this->assertEquals( $derived->getDirection(), 'rtl' );
59
60                 $derived->setDirection( 'ltr' );
61                 $this->assertEquals( $derived->getDirection(), 'ltr' );
62         }
63
64         public function testSkin() {
65                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
66
67                 $derived->setSkin( 'override' );
68                 $this->assertEquals( $derived->getSkin(), 'override' );
69         }
70
71         public function testUser() {
72                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
73
74                 $derived->setUser( 'Example' );
75                 $this->assertEquals( $derived->getUser(), 'Example' );
76         }
77
78         public function testDebug() {
79                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
80
81                 $derived->setDebug( true );
82                 $this->assertEquals( $derived->getDebug(), true );
83         }
84
85         public function testOnly() {
86                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
87
88                 $derived->setOnly( 'styles' );
89                 $this->assertEquals( $derived->getOnly(), 'styles' );
90
91                 $derived->setOnly( null );
92                 $this->assertEquals( $derived->getOnly(), null );
93         }
94
95         public function testVersion() {
96                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
97
98                 $derived->setVersion( 'hw1' );
99                 $this->assertEquals( $derived->getVersion(), 'hw1' );
100         }
101
102         public function testRaw() {
103                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
104
105                 $derived->setRaw( true );
106                 $this->assertEquals( $derived->getRaw(), true );
107         }
108
109         public function testGetHash() {
110                 $derived = new DerivativeResourceLoaderContext( self::getContext() );
111
112                 $this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
113
114                 $derived->setLanguage( 'nl' );
115                 $derived->setUser( 'Example' );
116                 // Assert that subclass is able to clear parent class "hash" member
117                 $this->assertEquals( $derived->getHash(), 'nl|fallback||Example|scripts|||||' );
118         }
119
120         public function testAccessors() {
121                 $context = self::getContext();
122                 $derived = new DerivativeResourceLoaderContext( $context );
123                 $this->assertSame( $derived->getRequest(), $context->getRequest() );
124                 $this->assertSame( $derived->getResourceLoader(), $context->getResourceLoader() );
125         }
126 }