Add more test cases to ActionTest
1. The 'dummy' test case already tested ucfirst(), but strtolower() was not tested. The new 'DUMMY' tests fixes that. 2. Add a new test where the requested action is false. 3. Refactored the dummy builder a bit to make it easier to reuse. Change-Id: Id7d9adac064b307b04bf6accb83ffd7f217a857c
This commit is contained in:
parent
8c2d4fa8e2
commit
d3e26d2906
1 changed files with 21 additions and 15 deletions
|
|
@ -13,22 +13,27 @@ class ActionTest extends MediaWikiTestCase {
|
|||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
$context = $this->getContext();
|
||||
$this->setMwGlobals( 'wgActions', array(
|
||||
'null' => null,
|
||||
'dummy' => true,
|
||||
'string' => 'NamedDummyAction',
|
||||
'declared' => 'NonExistingClassName',
|
||||
'callable' => array( $this, 'dummyActionCallback' ),
|
||||
'object' => new InstantiatedDummyAction( $this->getPage(), $this->getContext() ),
|
||||
'object' => new InstantiatedDummyAction( $context->getWikiPage(), $context ),
|
||||
) );
|
||||
}
|
||||
|
||||
private function getPage() {
|
||||
return WikiPage::factory( Title::makeTitle( 0, 'Title' ) );
|
||||
}
|
||||
private function getContext( $requestedAction = null ) {
|
||||
$request = new FauxRequest( array( 'action' => $requestedAction ) );
|
||||
|
||||
private function getContext() {
|
||||
return new DerivativeContext( RequestContext::getMain() );
|
||||
$page = WikiPage::factory( Title::makeTitle( 0, 'Title' ) );
|
||||
|
||||
$context = new DerivativeContext( RequestContext::getMain() );
|
||||
$context->setRequest( $request );
|
||||
$context->setWikiPage( $page );
|
||||
|
||||
return $context;
|
||||
}
|
||||
|
||||
public function actionProvider() {
|
||||
|
|
@ -39,6 +44,7 @@ class ActionTest extends MediaWikiTestCase {
|
|||
array( 'object', 'InstantiatedDummyAction' ),
|
||||
|
||||
// Capitalization is ignored
|
||||
array( 'DUMMY', 'DummyAction' ),
|
||||
array( 'STRING', 'NamedDummyAction' ),
|
||||
|
||||
// Null and non-existing values
|
||||
|
|
@ -46,6 +52,7 @@ class ActionTest extends MediaWikiTestCase {
|
|||
array( 'undeclared', null ),
|
||||
array( '', null ),
|
||||
array( null, null ),
|
||||
array( false, null ),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -57,7 +64,7 @@ class ActionTest extends MediaWikiTestCase {
|
|||
public function testActionExists( $requestedAction, $expected ) {
|
||||
$exists = Action::exists( $requestedAction );
|
||||
|
||||
$this->assertEquals( isset( $expected ), $exists );
|
||||
$this->assertSame( $expected !== null, $exists );
|
||||
}
|
||||
|
||||
public function testActionExists_doesNotRequireInstantiation() {
|
||||
|
|
@ -73,13 +80,10 @@ class ActionTest extends MediaWikiTestCase {
|
|||
* @param string|null $expected
|
||||
*/
|
||||
public function testGetActionName( $requestedAction, $expected ) {
|
||||
$context = $this->getContext();
|
||||
$context->setWikiPage( $this->getPage() );
|
||||
$context->setRequest( new FauxRequest( array( 'action' => $requestedAction ) ) );
|
||||
|
||||
$context = $this->getContext( $requestedAction );
|
||||
$actionName = Action::getActionName( $context );
|
||||
|
||||
$this->assertEquals( isset( $expected ) ? $expected : 'nosuchaction', $actionName );
|
||||
$this->assertEquals( $expected ?: 'nosuchaction', $actionName );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -88,13 +92,15 @@ class ActionTest extends MediaWikiTestCase {
|
|||
* @param string|null $expected
|
||||
*/
|
||||
public function testActionFactory( $requestedAction, $expected ) {
|
||||
$action = Action::factory( $requestedAction, $this->getPage(), $this->getContext() );
|
||||
$context = $this->getContext();
|
||||
$action = Action::factory( $requestedAction, $context->getWikiPage(), $context );
|
||||
|
||||
$this->assertType( isset( $expected ) ? $expected : 'null', $action );
|
||||
$this->assertType( $expected ?: 'null', $action );
|
||||
}
|
||||
|
||||
public function dummyActionCallback() {
|
||||
return new CalledDummyAction( $this->getPage(), $this->getContext() );
|
||||
$context = $this->getContext();
|
||||
return new CalledDummyAction( $context->getWikiPage(), $context );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue