mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Thanks
synced 2024-12-18 01:10:31 +00:00
Add basic unit test for dieOnBadUser api method
Change-Id: Ic9fd4e63b0a7e3508c600f34decb8ce18abc1597
This commit is contained in:
parent
c02ced989c
commit
4cdfa4e1f8
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Integration tests for the Thanks api module
|
||||
*
|
||||
* @covers ApiThank
|
||||
*
|
||||
* @group Thanks
|
81
tests/ApiThankUnitTest.php
Normal file
81
tests/ApiThankUnitTest.php
Normal file
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Unit tests for the thanks API module
|
||||
*
|
||||
* @group Thanks
|
||||
* @group API
|
||||
*
|
||||
* @author Adam Shorland
|
||||
*/
|
||||
class ApiThankUnitTest extends MediaWikiTestCase {
|
||||
|
||||
static $moduleName = 'thank';
|
||||
|
||||
protected function getModule() {
|
||||
return new ApiThank( new ApiMain(), self::$moduleName );
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideDieOnBadUser
|
||||
* @covers ApiThank::dieOnBadUser
|
||||
*/
|
||||
public function testDieOnBadUser( $user, $expectedError ) {
|
||||
$module = $this->getModule();
|
||||
$method = new ReflectionMethod( $module, 'dieOnBadUser' );
|
||||
$method->setAccessible( true );
|
||||
|
||||
if( $expectedError ) {
|
||||
$this->setExpectedException( 'UsageException', $expectedError );
|
||||
}
|
||||
|
||||
$method->invoke( $module, $user );
|
||||
//perhaps the method should return true.. For now we must do this
|
||||
$this->assertTrue( true );
|
||||
}
|
||||
|
||||
public function provideDieOnBadUser() {
|
||||
$testCases = array();
|
||||
|
||||
$mockUser = $this->getMock( 'User' );
|
||||
$mockUser->expects( $this->once() )
|
||||
->method( 'isAnon' )
|
||||
->will( $this->returnValue( true ) );
|
||||
|
||||
$testCases[ 'anon' ] = array( $mockUser, 'Anonymous users cannot send thanks' );
|
||||
|
||||
$mockUser = $this->getMock( 'User' );
|
||||
$mockUser->expects( $this->once() )
|
||||
->method( 'isAnon' )
|
||||
->will( $this->returnValue( false ) );
|
||||
$mockUser->expects( $this->once() )
|
||||
->method( 'pingLimiter' )
|
||||
->will( $this->returnValue( true ) );
|
||||
|
||||
$testCases[ 'ping' ] = array( $mockUser, "You've exceeded your rate limit. Please wait some time and try again" );
|
||||
|
||||
$mockUser = $this->getMock( 'User' );
|
||||
$mockUser->expects( $this->once() )
|
||||
->method( 'isAnon' )
|
||||
->will( $this->returnValue( false ) );
|
||||
$mockUser->expects( $this->once() )
|
||||
->method( 'pingLimiter' )
|
||||
->will( $this->returnValue( false ) );
|
||||
$mockUser->expects( $this->once() )
|
||||
->method( 'isBlocked' )
|
||||
->will( $this->returnValue( true ) );
|
||||
|
||||
$testCases[ 'blocked' ] = array( $mockUser, 'You have been blocked from editing' );
|
||||
|
||||
return $testCases;
|
||||
}
|
||||
|
||||
//@todo test userAlreadySentThanksForRevision
|
||||
//@todo test getRevisionFromParams
|
||||
//@todo test getTitleFromRevision
|
||||
//@todo test getSourceFromParams
|
||||
//@todo test getUserIdFromRevision
|
||||
//@todo test markResultSuccess
|
||||
//@todo test sendThanks
|
||||
|
||||
}
|
Loading…
Reference in a new issue