resourceloader: Use -1 instead of null in DerivativeResourceLoaderContext
[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( array(
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(), array( 'test.context' ) );
26 $this->assertEquals( $derived->getOnly(), 'scripts' );
27 $this->assertEquals( $derived->getSkin(), 'fallback' );
28 $this->assertEquals( $derived->getHash(), 'zh|ltr|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
39 public function testSetModules() {
40 $context = self::getResourceLoaderContext();
41 $derived = new DerivativeResourceLoaderContext( $context );
42
43 $derived->setModules( array( 'test.override' ) );
44 $this->assertEquals( $derived->getModules(), array( 'test.override' ) );
45 }
46
47 public function testSetOnly() {
48 $context = self::getResourceLoaderContext();
49 $derived = new DerivativeResourceLoaderContext( $context );
50
51 $derived->setOnly( 'styles' );
52 $this->assertEquals( $derived->getOnly(), 'styles' );
53
54 $derived->setOnly( null );
55 $this->assertEquals( $derived->getOnly(), null );
56 }
57
58 public function testSetSkin() {
59 $context = self::getResourceLoaderContext();
60 $derived = new DerivativeResourceLoaderContext( $context );
61
62 $derived->setSkin( 'override' );
63 $this->assertEquals( $derived->getSkin(), 'override' );
64 }
65
66 public function testGetHash() {
67 $context = self::getResourceLoaderContext();
68 $derived = new DerivativeResourceLoaderContext( $context );
69
70 $derived->setLanguage( 'nl' );
71 // Assert that subclass is able to clear parent class "hash" member
72 $this->assertEquals( $derived->getHash(), 'nl|ltr|fallback||||||scripts|' );
73 }
74
75 }