diff --git a/tests/ApiThankTest.php b/tests/ApiThankIntegrationTest.php similarity index 97% rename from tests/ApiThankTest.php rename to tests/ApiThankIntegrationTest.php index daf693a5..8c538f6d 100644 --- a/tests/ApiThankTest.php +++ b/tests/ApiThankIntegrationTest.php @@ -1,6 +1,8 @@ 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 + +}