Merge "Selenium: replace UserLoginPage with BlankPage where possible"
[lhc/web/wiklou.git] / tests / phpunit / includes / api / ApiBlockInfoTraitTest.php
1 <?php
2
3 use Wikimedia\TestingAccessWrapper;
4 use MediaWiki\Block\DatabaseBlock;
5 use MediaWiki\Block\SystemBlock;
6
7 /**
8 * @covers ApiBlockInfoTrait
9 */
10 class ApiBlockInfoTraitTest extends MediaWikiTestCase {
11 /**
12 * @dataProvider provideGetBlockDetails
13 */
14 public function testGetBlockDetails( $block, $expectedInfo ) {
15 $mock = $this->getMockForTrait( ApiBlockInfoTrait::class );
16 $info = TestingAccessWrapper::newFromObject( $mock )->getBlockDetails( $block );
17 $subset = array_merge( [
18 'blockid' => null,
19 'blockedby' => '',
20 'blockedbyid' => 0,
21 'blockreason' => '',
22 'blockexpiry' => 'infinite',
23 ], $expectedInfo );
24 $this->assertArraySubset( $subset, $info );
25 }
26
27 public static function provideGetBlockDetails() {
28 return [
29 'Sitewide block' => [
30 new DatabaseBlock(),
31 [ 'blockpartial' => false ],
32 ],
33 'Partial block' => [
34 new DatabaseBlock( [ 'sitewide' => false ] ),
35 [ 'blockpartial' => true ],
36 ],
37 'System block' => [
38 new SystemBlock( [ 'systemBlock' => 'proxy' ] ),
39 [ 'systemblocktype' => 'proxy' ]
40 ],
41 ];
42 }
43 }