Just methods where adding "static" to the declaration was enough, I didn't do anything with providers that used $this. Initially by search and replace. There were many mistakes which I found mostly by running the PHPStorm inspection which searches for $this usage in a static method. Later I used the PHPStorm "make static" action which avoids the more obvious mistakes. Bug: T332865 Change-Id: I47ed6692945607dfa5c139d42edbd934fa4f3a36
52 lines
1.4 KiB
PHP
52 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Tests\Rest\BasicAccess;
|
|
|
|
use MediaWiki\Rest\BasicAccess\BasicAuthorizerInterface;
|
|
use MediaWiki\Rest\BasicAccess\CompoundAuthorizer;
|
|
use MediaWiki\Rest\BasicAccess\StaticBasicAuthorizer;
|
|
use MediaWiki\Rest\Handler;
|
|
use MediaWiki\Rest\RequestInterface;
|
|
|
|
/**
|
|
* @covers \MediaWiki\Rest\BasicAccess\CompoundAuthorizer
|
|
*/
|
|
class CompoundAuthorizerTest extends \MediaWikiUnitTestCase {
|
|
public static function provideAuthorize() {
|
|
yield 'No authorizers' => [
|
|
[], null, null
|
|
];
|
|
yield 'All success' => [
|
|
[ new StaticBasicAuthorizer( null ), new StaticBasicAuthorizer( null ) ],
|
|
null, null
|
|
];
|
|
yield 'First failed returned' => [
|
|
[ new StaticBasicAuthorizer( 'first' ), new StaticBasicAuthorizer( 'second' ) ],
|
|
null, 'first'
|
|
];
|
|
yield 'Added failed' => [
|
|
[], new StaticBasicAuthorizer( 'added' ), 'added'
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @dataProvider provideAuthorize
|
|
* @param array $authorizers
|
|
* @param BasicAuthorizerInterface|null $addedAuthorizer
|
|
* @param string|null $result
|
|
*/
|
|
public function testAuthorize(
|
|
array $authorizers,
|
|
?BasicAuthorizerInterface $addedAuthorizer,
|
|
?string $result
|
|
) {
|
|
$authorizer = new CompoundAuthorizer( $authorizers );
|
|
if ( $addedAuthorizer ) {
|
|
$authorizer->addAuthorizer( $addedAuthorizer );
|
|
}
|
|
$this->assertSame( $result, $authorizer->authorize(
|
|
$this->createNoOpMock( RequestInterface::class ),
|
|
$this->createNoOpMock( Handler::class )
|
|
) );
|
|
}
|
|
}
|