wiki.techinc.nl/tests/phpunit/unit/includes/context/DerivativeContextTest.php
Kunal Mehta a85f569dd1 Revert "Use CsrfTokenSet as CSRF token source"
This reverts commit 0d75fdb4f7.

Bug: T287542
Change-Id: Iedd3461869f973f8d621a39e6ad4674cbb577551
2021-08-05 15:48:26 -07:00

105 lines
2.9 KiB
PHP

<?php
namespace MediaWiki\Tests\Unit\Context;
use DerivativeContext;
use FauxRequest;
use HashConfig;
use IContextSource;
use Language;
use MediaWikiUnitTestCase;
use OutputPage;
use RequestContext;
use User;
/**
* @coversDefaultClass DerivativeContext
* @package MediaWiki\Tests\Unit\Context
*/
class DerivativeContextTest extends MediaWikiUnitTestCase {
public function provideGetterSetter() {
$initialContext = new RequestContext();
yield 'get/set Context' => [
'initialContext' => $initialContext,
'initialValue' => $initialContext,
'newValue' => new RequestContext(),
'getter' => 'getContext',
'setter' => 'setContext'
];
$initialConfig = new HashConfig();
$initialContext->setConfig( $initialConfig );
yield 'get/set Config' => [
'initialContext' => $initialContext,
'initialValue' => $initialConfig,
'newValue' => new HashConfig(),
'getter' => 'getConfig',
'setter' => 'setConfig'
];
$initialOutput = $this->createNoOpMock( OutputPage::class );
$initialContext->setOutput( $initialOutput );
yield 'get/set OutputPage' => [
'initialContext' => $initialContext,
'initialValue' => $initialOutput,
'newValue' => $this->createNoOpMock( OutputPage::class ),
'getter' => 'getOutput',
'setter' => 'setOutput'
];
$initialUser = $this->createNoOpMock( User::class );
$initialContext->setUser( $initialUser );
yield 'get/set User' => [
'initialContext' => $initialContext,
'initialValue' => $initialUser,
'newValue' => $this->createNoOpMock( User::class ),
'getter' => 'getUser',
'setter' => 'setUser'
];
$initialLanguage = $this->createNoOpMock( Language::class );
$initialContext->setLanguage( $initialLanguage );
yield 'get/set Language' => [
'initialContext' => $initialContext,
'initialValue' => $initialLanguage,
'newValue' => $this->createNoOpMock( Language::class ),
'getter' => 'getLanguage',
'setter' => 'setLanguage'
];
$initialRequest = new FauxRequest();
$initialContext->setRequest( $initialRequest );
yield 'get/set WebRequest' => [
'initialContext' => $initialContext,
'initialValue' => $initialRequest,
'newValue' => new FauxRequest(),
'getter' => 'getRequest',
'setter' => 'setRequest'
];
}
/**
* @covers ::__construct
* @covers ::getContext
* @covers ::setContext
* @covers ::getConfig
* @covers ::setConfig
* @covers ::getOutput
* @covers ::setOutput
* @covers ::getUser
* @covers ::setUser
* @covers ::setLanguage
* @covers ::getLanguage
* @covers ::getRequest
* @covers ::setRequest
* @dataProvider provideGetterSetter
*/
public function testGetterSetter(
IContextSource $initialContext,
$initialValue,
$newValue,
string $getter,
string $setter
) {
$derivativeContext = new DerivativeContext( $initialContext );
$this->assertSame( $initialValue, $derivativeContext->$getter() );
$derivativeContext->$setter( $newValue );
$this->assertSame( $newValue, $derivativeContext->$getter() );
}
}