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 54 55 56 57 58 59 60
|
<?php
use MediaWiki\Block\BlockActionInfo;
/**
* @group Blocking
* @coversDefaultClass \MediaWiki\Block\BlockActionInfo
*/
class BlockActionInfoTest extends MediaWikiUnitTestCase {
private BlockActionInfo $blockActionInfo;
protected function setUp(): void {
parent::setUp();
$this->blockActionInfo = new BlockActionInfo(
$this->createHookContainer( [
'GetAllBlockActions' => static function ( array &$actions ) {
$actions[ 'test' ] = 100;
},
] )
);
}
/**
* @covers ::getAllBlockActions
*/
public function testAddBlockAction() {
// 'test' action in added by hook with id 100
$blockActions = $this->blockActionInfo->getAllBlockActions();
// Confirm new action is added
$this->assertArrayHasKey( 'test', $blockActions, 'Action added via hook' );
$this->assertSame( 100, $blockActions['test'], 'Id of action added via hook' );
}
/**
* @dataProvider provideIdAndAction
* @param string|false $action False if the id is invalid
* @param int|false $id False if the action is invalid
* @covers ::getIdFromAction
* @covers ::getActionFromId
*/
public function testIdAndAction( $action, $id ) {
if ( $id !== false ) {
$this->assertSame( $action, $this->blockActionInfo->getActionFromId( $id ) );
}
if ( $action !== false ) {
$this->assertSame( $id, $this->blockActionInfo->getIdFromAction( $action ) );
}
}
public static function provideIdAndAction() {
return [
'Valid core action' => [ 'upload', 1 ],
'Valid hook action' => [ 'test', 100 ],
'Invalid action name' => [ 'invalid', false ],
'Invalid action id' => [ false, 200 ],
];
}
}
|