Bug: T305043 Depends-On: Ic7c1b19b86e8a151e2d42aaec00ef0e89db77f08 Change-Id: Ic6bd48b400ecd839ef99b518ef955781470cd05c
36 lines
1.1 KiB
PHP
36 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Tests\Rest\Handler;
|
|
|
|
use MediaWiki\Session\Session;
|
|
use MediaWiki\Session\SessionId;
|
|
use MediaWiki\Session\SessionProviderInterface;
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
|
|
/**
|
|
* A trait for testing Handler classes.
|
|
* This trait is intended to be used on subclasses of MediaWikiUnitTestCase
|
|
* or MediaWikiIntegrationTestCase.
|
|
*
|
|
* @stable to use
|
|
* @package MediaWiki\Tests\Rest
|
|
*/
|
|
trait SessionHelperTestTrait {
|
|
/**
|
|
* @param bool $csrfSafe
|
|
* @return Session
|
|
*/
|
|
public function getSession( bool $csrfSafe = false ) {
|
|
/** @var SessionProviderInterface|MockObject $session */
|
|
$sessionProvider =
|
|
$this->createNoOpMock( SessionProviderInterface::class, [ 'safeAgainstCsrf' ] );
|
|
$sessionProvider->method( 'safeAgainstCsrf' )->willReturn( $csrfSafe );
|
|
|
|
/** @var Session|MockObject $session */
|
|
$session = $this->createNoOpMock( Session::class, [ 'getSessionId', 'getProvider' ] );
|
|
$session->method( 'getSessionId' )->willReturn( new SessionId( 'test' ) );
|
|
$session->method( 'getProvider' )->willReturn( $sessionProvider );
|
|
|
|
return $session;
|
|
}
|
|
}
|