Cleanup Api phpunit Tests
- Splits multiple classes into individual files - Adds @covers tags - Fixes scope Change-Id: I7d2816d3574fa53a2aaa8e2a84b7a7ecdd245252
This commit is contained in:
parent
96a9a3e101
commit
dc18b813e8
13 changed files with 127 additions and 87 deletions
|
|
@ -55,10 +55,10 @@ $wgAutoloadClasses += array(
|
|||
# tests/phpunit/includes/api
|
||||
'ApiFormatTestBase' => "$testDir/phpunit/includes/api/format/ApiFormatTestBase.php",
|
||||
'ApiTestCase' => "$testDir/phpunit/includes/api/ApiTestCase.php",
|
||||
'ApiTestContext' => "$testDir/phpunit/includes/api/ApiTestCase.php",
|
||||
'MockApi' => "$testDir/phpunit/includes/api/ApiTestCase.php",
|
||||
'ApiTestContext' => "$testDir/phpunit/includes/api/ApiTestContext.php",
|
||||
'MockApi' => "$testDir/phpunit/includes/api/MockApi.php",
|
||||
'UserWrapper' => "$testDir/phpunit/includes/api/UserWrapper.php",
|
||||
'RandomImageGenerator' => "$testDir/phpunit/includes/api/RandomImageGenerator.php",
|
||||
'UserWrapper' => "$testDir/phpunit/includes/api/ApiTestCase.php",
|
||||
|
||||
# tests/phpunit/includes/content
|
||||
'DummyContentHandlerForTesting' => "$testDir/phpunit/includes/content/ContentHandlerTest.php",
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
* @group API
|
||||
* @group Database
|
||||
* @group medium
|
||||
*
|
||||
* @covers ApiBlock
|
||||
*/
|
||||
class ApiBlockTest extends ApiTestCase {
|
||||
protected function setUp() {
|
||||
|
|
@ -11,7 +13,7 @@ class ApiBlockTest extends ApiTestCase {
|
|||
$this->doLogin();
|
||||
}
|
||||
|
||||
function getTokens() {
|
||||
protected function getTokens() {
|
||||
return $this->getTokenList( self::$users['sysop'] );
|
||||
}
|
||||
|
||||
|
|
@ -63,17 +65,13 @@ class ApiBlockTest extends ApiTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Attempting to block without a token should give a UsageException with
|
||||
* error message:
|
||||
* "The token parameter must be set"
|
||||
*
|
||||
* @dataProvider provideBlockUnblockAction
|
||||
* @expectedException UsageException
|
||||
* @expectedExceptionMessage The token parameter must be set
|
||||
*/
|
||||
public function testBlockingActionWithNoToken( $action ) {
|
||||
public function testBlockingActionWithNoToken( ) {
|
||||
$this->doApiRequest(
|
||||
array(
|
||||
'action' => $action,
|
||||
'action' => 'block',
|
||||
'user' => 'UTApiBlockee',
|
||||
'reason' => 'Some reason',
|
||||
),
|
||||
|
|
@ -82,14 +80,4 @@ class ApiBlockTest extends ApiTestCase {
|
|||
self::$users['sysop']->user
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Just provide the 'block' and 'unblock' action to test both API calls
|
||||
*/
|
||||
public static function provideBlockUnblockAction() {
|
||||
return array(
|
||||
array( 'block' ),
|
||||
array( 'unblock' ),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,9 +4,11 @@
|
|||
* @group Database
|
||||
* @group API
|
||||
* @group medium
|
||||
*
|
||||
* @covers ApiCreateAccount
|
||||
*/
|
||||
class ApiCreateAccountTest extends ApiTestCase {
|
||||
function setUp() {
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
LoginForm::setCreateaccountToken();
|
||||
$this->setMwGlobals( array( 'wgEnableEmail' => true ) );
|
||||
|
|
@ -8,6 +8,8 @@
|
|||
* @group API
|
||||
* @group Database
|
||||
* @group medium
|
||||
*
|
||||
* @covers ApiEditPage
|
||||
*/
|
||||
class ApiEditPageTest extends ApiTestCase {
|
||||
|
||||
|
|
|
|||
|
|
@ -4,10 +4,18 @@
|
|||
* @group API
|
||||
* @group Database
|
||||
* @group medium
|
||||
*
|
||||
* @covers ApiOptions
|
||||
*/
|
||||
class ApiOptionsTest extends MediaWikiLangTestCase {
|
||||
|
||||
private $mTested, $mUserMock, $mContext, $mSession;
|
||||
/** @var PHPUnit_Framework_MockObject_MockObject */
|
||||
private $mUserMock ;
|
||||
/** @var ApiOptions */
|
||||
private $mTested;
|
||||
private $mSession;
|
||||
/** @var DerivativeContext */
|
||||
private $mContext;
|
||||
|
||||
private $mOldGetPreferencesHooks = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
* @group API
|
||||
* @group Database
|
||||
* @group medium
|
||||
*
|
||||
* @covers ApiParse
|
||||
*/
|
||||
class ApiParseTest extends ApiTestCase {
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
* @group API
|
||||
* @group Database
|
||||
* @group medium
|
||||
*
|
||||
* @covers ApiPurge
|
||||
*/
|
||||
class ApiPurgeTest extends ApiTestCase {
|
||||
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
|
|||
* @param $params Array: key-value API params
|
||||
* @param $session Array|null: session array
|
||||
* @param $user User|null A User object for the context
|
||||
* @return result of the API call
|
||||
* @return mixed result of the API call
|
||||
* @throws Exception in case wsToken is not set in the session
|
||||
*/
|
||||
protected function doApiRequestWithToken( array $params, array $session = null, User $user = null ) {
|
||||
|
|
@ -188,66 +188,3 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
class UserWrapper {
|
||||
public $userName;
|
||||
public $password;
|
||||
public $user;
|
||||
|
||||
public function __construct( $userName, $password, $group = '' ) {
|
||||
$this->userName = $userName;
|
||||
$this->password = $password;
|
||||
|
||||
$this->user = User::newFromName( $this->userName );
|
||||
if ( !$this->user->getID() ) {
|
||||
$this->user = User::createNew( $this->userName, array(
|
||||
"email" => "test@example.com",
|
||||
"real_name" => "Test User" ) );
|
||||
}
|
||||
$this->user->setPassword( $this->password );
|
||||
|
||||
if ( $group !== '' ) {
|
||||
$this->user->addGroup( $group );
|
||||
}
|
||||
$this->user->saveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
class MockApi extends ApiBase {
|
||||
public function execute() {
|
||||
}
|
||||
|
||||
public function getVersion() {
|
||||
}
|
||||
|
||||
public function __construct() {
|
||||
}
|
||||
|
||||
public function getAllowedParams() {
|
||||
return array(
|
||||
'filename' => null,
|
||||
'enablechunks' => false,
|
||||
'sessionkey' => null,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class ApiTestContext extends RequestContext {
|
||||
|
||||
/**
|
||||
* Returns a DerivativeContext with the request variables in place
|
||||
*
|
||||
* @param $request WebRequest request object including parameters and session
|
||||
* @param $user User or null
|
||||
* @return DerivativeContext
|
||||
*/
|
||||
public function newTestContext( WebRequest $request, User $user = null ) {
|
||||
$context = new DerivativeContext( $this );
|
||||
$context->setRequest( $request );
|
||||
if ( $user !== null ) {
|
||||
$context->setUser( $user );
|
||||
}
|
||||
|
||||
return $context;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
21
tests/phpunit/includes/api/ApiTestContext.php
Normal file
21
tests/phpunit/includes/api/ApiTestContext.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
class ApiTestContext extends RequestContext {
|
||||
|
||||
/**
|
||||
* Returns a DerivativeContext with the request variables in place
|
||||
*
|
||||
* @param $request WebRequest request object including parameters and session
|
||||
* @param $user User or null
|
||||
* @return DerivativeContext
|
||||
*/
|
||||
public function newTestContext( WebRequest $request, User $user = null ) {
|
||||
$context = new DerivativeContext( $this );
|
||||
$context->setRequest( $request );
|
||||
if ( $user !== null ) {
|
||||
$context->setUser( $user );
|
||||
}
|
||||
|
||||
return $context;
|
||||
}
|
||||
}
|
||||
31
tests/phpunit/includes/api/ApiUnblockTest.php
Normal file
31
tests/phpunit/includes/api/ApiUnblockTest.php
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @group API
|
||||
* @group Database
|
||||
* @group medium
|
||||
*
|
||||
* @covers ApiUnblock
|
||||
*/
|
||||
class ApiUnblockTest extends ApiTestCase {
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$this->doLogin();
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException UsageException
|
||||
*/
|
||||
public function testWithNoToken( ) {
|
||||
$this->doApiRequest(
|
||||
array(
|
||||
'action' => 'unblock',
|
||||
'user' => 'UTApiBlockee',
|
||||
'reason' => 'Some reason',
|
||||
),
|
||||
null,
|
||||
false,
|
||||
self::$users['sysop']->user
|
||||
);
|
||||
}
|
||||
}
|
||||
20
tests/phpunit/includes/api/MockApi.php
Normal file
20
tests/phpunit/includes/api/MockApi.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
class MockApi extends ApiBase {
|
||||
public function execute() {
|
||||
}
|
||||
|
||||
public function getVersion() {
|
||||
}
|
||||
|
||||
public function __construct() {
|
||||
}
|
||||
|
||||
public function getAllowedParams() {
|
||||
return array(
|
||||
'filename' => null,
|
||||
'enablechunks' => false,
|
||||
'sessionkey' => null,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
* @group API
|
||||
*/
|
||||
class PrefixUniquenessTest extends MediaWikiTestCase {
|
||||
|
||||
public function testPrefixes() {
|
||||
$main = new ApiMain( new FauxRequest() );
|
||||
$query = new ApiQuery( $main, 'foo', 'bar' );
|
||||
|
|
@ -13,6 +14,7 @@ class PrefixUniquenessTest extends MediaWikiTestCase {
|
|||
$prefixes = array();
|
||||
|
||||
foreach ( $modules as $name => $class ) {
|
||||
/** @var ApiMain $module */
|
||||
$module = new $class( $main, $name );
|
||||
$prefix = $module->getModulePrefix();
|
||||
if ( isset( $prefixes[$prefix] ) ) {
|
||||
|
|
|
|||
25
tests/phpunit/includes/api/UserWrapper.php
Normal file
25
tests/phpunit/includes/api/UserWrapper.php
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
class UserWrapper {
|
||||
public $userName;
|
||||
public $password;
|
||||
public $user;
|
||||
|
||||
public function __construct( $userName, $password, $group = '' ) {
|
||||
$this->userName = $userName;
|
||||
$this->password = $password;
|
||||
|
||||
$this->user = User::newFromName( $this->userName );
|
||||
if ( !$this->user->getID() ) {
|
||||
$this->user = User::createNew( $this->userName, array(
|
||||
"email" => "test@example.com",
|
||||
"real_name" => "Test User" ) );
|
||||
}
|
||||
$this->user->setPassword( $this->password );
|
||||
|
||||
if ( $group !== '' ) {
|
||||
$this->user->addGroup( $group );
|
||||
}
|
||||
$this->user->saveSettings();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue