wiki.techinc.nl/tests/phpunit/unit/includes/block/BlockActionInfoTest.php
Thalia 6cb1016594 Allow partial action blocks to be made via ApiBlock
Bug: T280522
Change-Id: I114e3c76cfb6dd2f79b5217aee4b3da34df00850
2021-05-04 17:48:21 +01:00

55 lines
1.3 KiB
PHP

<?php
use MediaWiki\Block\BlockActionInfo;
use MediaWiki\HookContainer\HookContainer;
/**
* @group Blocking
* @coversDefaultClass \MediaWiki\Block\BlockActionInfo
*/
class BlockActionInfoTest extends MediaWikiUnitTestCase {
/** @var HookContainer */
private $hookContainer;
protected function setUp(): void {
parent::setUp();
$this->hookContainer = $this->createHookContainer();
}
/**
* @covers ::getAllBlockActions
*/
public function testAddBlockAction() {
$this->hookContainer->register(
'GetAllBlockActions',
static function ( array &$actions ) {
$actions[ 'test' ] = 100;
}
);
$blockActionInfo = new BlockActionInfo( $this->hookContainer );
$blockActions = $blockActionInfo->getAllBlockActions();
// Confirm new action is added
$this->assertContains( 100, $blockActions );
}
/**
* @dataProvider provideGetIdFromAction
* @covers ::getIdFromAction
*/
public function testGetIdFromAction( $action, $expected ) {
$blockActionInfo = new BlockActionInfo( $this->createMock( HookContainer::class ) );
$this->assertSame(
$expected,
$blockActionInfo->getIdFromAction( $action )
);
}
public static function provideGetIdFromAction() {
return [
'Valid action' => [ 'upload', 1 ],
'Invalid action' => [ 'invalidaction', false ],
];
}
}