1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
<?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;
use MediaWikiUnitTestCase;
/**
* @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 )
) );
}
}
|