Merge "Add GENDER support to $3 in logentry-rights-rights"
[lhc/web/wiklou.git] / tests / phpunit / includes / resourceloader / DerivativeResourceLoaderContextTest.php
1 <?php
2
3 /**
4 * @group ResourceLoader
5 */
6 class DerivativeResourceLoaderContextTest extends PHPUnit_Framework_TestCase {
7
8 protected static function getResourceLoaderContext() {
9 $resourceLoader = new ResourceLoader();
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( $resourceLoader, $request );
18 }
19
20 public function testGet() {
21 $context = self::getResourceLoaderContext();
22 $derived = new DerivativeResourceLoaderContext( $context );
23
24 $this->assertEquals( $derived->getLanguage(), 'zh' );
25 $this->assertEquals( $derived->getModules(), [ 'test.context' ] );
26 $this->assertEquals( $derived->getOnly(), 'scripts' );
27 $this->assertEquals( $derived->getSkin(), 'fallback' );
28 $this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
29 }
30
31 public function testSetLanguage() {
32 $context = self::getResourceLoaderContext();
33 $derived = new DerivativeResourceLoaderContext( $context );
34
35 $derived->setLanguage( 'nl' );
36 $this->assertEquals( $derived->getLanguage(), 'nl' );
37
38 $derived->setLanguage( 'he' );
39 $this->assertEquals( $derived->getDirection(), 'rtl' );
40 }
41
42 public function testSetModules() {
43 $context = self::getResourceLoaderContext();
44 $derived = new DerivativeResourceLoaderContext( $context );
45
46 $derived->setModules( [ 'test.override' ] );
47 $this->assertEquals( $derived->getModules(), [ 'test.override' ] );
48 }
49
50 public function testSetOnly() {
51 $context = self::getResourceLoaderContext();
52 $derived = new DerivativeResourceLoaderContext( $context );
53
54 $derived->setOnly( 'styles' );
55 $this->assertEquals( $derived->getOnly(), 'styles' );
56
57 $derived->setOnly( null );
58 $this->assertEquals( $derived->getOnly(), null );
59 }
60
61 public function testSetSkin() {
62 $context = self::getResourceLoaderContext();
63 $derived = new DerivativeResourceLoaderContext( $context );
64
65 $derived->setSkin( 'override' );
66 $this->assertEquals( $derived->getSkin(), 'override' );
67 }
68
69 public function testGetHash() {
70 $context = self::getResourceLoaderContext();
71 $derived = new DerivativeResourceLoaderContext( $context );
72
73 $derived->setLanguage( 'nl' );
74 // Assert that subclass is able to clear parent class "hash" member
75 $this->assertEquals( $derived->getHash(), 'nl|fallback|||scripts|||||' );
76 }
77
78 }