summaryrefslogtreecommitdiff
path: root/www/wiki/tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php')
-rw-r--r--www/wiki/tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php128
1 files changed, 128 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php b/www/wiki/tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php
new file mode 100644
index 00000000..e4f58eb1
--- /dev/null
+++ b/www/wiki/tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php
@@ -0,0 +1,128 @@
+<?php
+
+/**
+ * @group ResourceLoader
+ * @covers DerivativeResourceLoaderContext
+ */
+class DerivativeResourceLoaderContextTest extends PHPUnit\Framework\TestCase {
+
+ use MediaWikiCoversValidator;
+
+ protected static function getContext() {
+ $request = new FauxRequest( [
+ 'lang' => 'zh',
+ 'modules' => 'test.context',
+ 'only' => 'scripts',
+ 'skin' => 'fallback',
+ 'target' => 'test',
+ ] );
+ return new ResourceLoaderContext( new ResourceLoader(), $request );
+ }
+
+ public function testGetInherited() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ // Request parameters
+ $this->assertEquals( $derived->getDebug(), false );
+ $this->assertEquals( $derived->getLanguage(), 'zh' );
+ $this->assertEquals( $derived->getModules(), [ 'test.context' ] );
+ $this->assertEquals( $derived->getOnly(), 'scripts' );
+ $this->assertEquals( $derived->getSkin(), 'fallback' );
+ $this->assertEquals( $derived->getUser(), null );
+
+ // Misc
+ $this->assertEquals( $derived->getDirection(), 'ltr' );
+ $this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
+ }
+
+ public function testModules() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ $derived->setModules( [ 'test.override' ] );
+ $this->assertEquals( $derived->getModules(), [ 'test.override' ] );
+ }
+
+ public function testLanguage() {
+ $context = self::getContext();
+ $derived = new DerivativeResourceLoaderContext( $context );
+
+ $derived->setLanguage( 'nl' );
+ $this->assertEquals( $derived->getLanguage(), 'nl' );
+ }
+
+ public function testDirection() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ $derived->setLanguage( 'nl' );
+ $this->assertEquals( $derived->getDirection(), 'ltr' );
+
+ $derived->setLanguage( 'he' );
+ $this->assertEquals( $derived->getDirection(), 'rtl' );
+
+ $derived->setDirection( 'ltr' );
+ $this->assertEquals( $derived->getDirection(), 'ltr' );
+ }
+
+ public function testSkin() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ $derived->setSkin( 'override' );
+ $this->assertEquals( $derived->getSkin(), 'override' );
+ }
+
+ public function testUser() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ $derived->setUser( 'Example' );
+ $this->assertEquals( $derived->getUser(), 'Example' );
+ }
+
+ public function testDebug() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ $derived->setDebug( true );
+ $this->assertEquals( $derived->getDebug(), true );
+ }
+
+ public function testOnly() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ $derived->setOnly( 'styles' );
+ $this->assertEquals( $derived->getOnly(), 'styles' );
+
+ $derived->setOnly( null );
+ $this->assertEquals( $derived->getOnly(), null );
+ }
+
+ public function testVersion() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ $derived->setVersion( 'hw1' );
+ $this->assertEquals( $derived->getVersion(), 'hw1' );
+ }
+
+ public function testRaw() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ $derived->setRaw( true );
+ $this->assertEquals( $derived->getRaw(), true );
+ }
+
+ public function testGetHash() {
+ $derived = new DerivativeResourceLoaderContext( self::getContext() );
+
+ $this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
+
+ $derived->setLanguage( 'nl' );
+ $derived->setUser( 'Example' );
+ // Assert that subclass is able to clear parent class "hash" member
+ $this->assertEquals( $derived->getHash(), 'nl|fallback||Example|scripts|||||' );
+ }
+
+ public function testAccessors() {
+ $context = self::getContext();
+ $derived = new DerivativeResourceLoaderContext( $context );
+ $this->assertSame( $derived->getRequest(), $context->getRequest() );
+ $this->assertSame( $derived->getResourceLoader(), $context->getResourceLoader() );
+ }
+}