You are here

public function SocketPostTest::testSubmitBadResponse in reCAPTCHA 7.2

Same name and namespace in other branches
  1. 6.2 recaptcha-php/tests/ReCaptcha/RequestMethod/SocketPostTest.php \ReCaptcha\RequestMethod\SocketPostTest::testSubmitBadResponse()

File

recaptcha-php/tests/ReCaptcha/RequestMethod/SocketPostTest.php, line 89

Class

SocketPostTest

Namespace

ReCaptcha\RequestMethod

Code

public function testSubmitBadResponse() {
  $socket = $this
    ->getMockBuilder(\ReCaptcha\RequestMethod\Socket::class)
    ->disableOriginalConstructor()
    ->setMethods(array(
    'fsockopen',
    'fwrite',
    'fgets',
    'feof',
    'fclose',
  ))
    ->getMock();
  $socket
    ->expects($this
    ->once())
    ->method('fsockopen')
    ->willReturn(true);
  $socket
    ->expects($this
    ->once())
    ->method('fwrite');
  $socket
    ->expects($this
    ->once())
    ->method('fgets')
    ->willReturn("HTTP/1.1 500 NOPEn\\nBOBBINS");
  $socket
    ->expects($this
    ->exactly(2))
    ->method('feof')
    ->will($this
    ->onConsecutiveCalls(false, true));
  $socket
    ->expects($this
    ->once())
    ->method('fclose')
    ->willReturn(true);
  $ps = new SocketPost($socket);
  $response = $ps
    ->submit(new RequestParameters("secret", "response", "remoteip", "version"));
  $this
    ->assertEquals('{"success": false, "error-codes": ["' . ReCaptcha::E_BAD_RESPONSE . '"]}', $response);
}