4 * @group ResourceLoader
6 class DerivativeResourceLoaderContextTest
extends PHPUnit_Framework_TestCase
{
8 protected static function getResourceLoaderContext() {
9 $resourceLoader = new ResourceLoader();
10 $request = new FauxRequest( array(
12 'modules' => 'test.context',
17 return new ResourceLoaderContext( $resourceLoader, $request );
20 public function testGet() {
21 $context = self
::getResourceLoaderContext();
22 $derived = new DerivativeResourceLoaderContext( $context );
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|' );
31 public function testSetLanguage() {
32 $context = self
::getResourceLoaderContext();
33 $derived = new DerivativeResourceLoaderContext( $context );
35 $derived->setLanguage( 'nl' );
36 $this->assertEquals( $derived->getLanguage(), 'nl' );
39 public function testSetModules() {
40 $context = self
::getResourceLoaderContext();
41 $derived = new DerivativeResourceLoaderContext( $context );
43 $derived->setModules( array( 'test.override' ) );
44 $this->assertEquals( $derived->getModules(), array( 'test.override' ) );
47 public function testSetOnly() {
48 $context = self
::getResourceLoaderContext();
49 $derived = new DerivativeResourceLoaderContext( $context );
51 $derived->setOnly( 'styles' );
52 $this->assertEquals( $derived->getOnly(), 'styles' );
54 $derived->setOnly( null );
55 $this->assertEquals( $derived->getOnly(), null );
58 public function testSetSkin() {
59 $context = self
::getResourceLoaderContext();
60 $derived = new DerivativeResourceLoaderContext( $context );
62 $derived->setSkin( 'override' );
63 $this->assertEquals( $derived->getSkin(), 'override' );
66 public function testGetHash() {
67 $context = self
::getResourceLoaderContext();
68 $derived = new DerivativeResourceLoaderContext( $context );
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|' );