class SocketPostTest in reCAPTCHA 7.2
Same name and namespace in other branches
- 6.2 recaptcha-php/tests/ReCaptcha/RequestMethod/SocketPostTest.php \ReCaptcha\RequestMethod\SocketPostTest
Hierarchy
- class \ReCaptcha\RequestMethod\SocketPostTest extends \PHPUnit\Framework\TestCase
Expanded class hierarchy of SocketPostTest
File
- recaptcha-php/
tests/ ReCaptcha/ RequestMethod/ SocketPostTest.php, line 33
Namespace
ReCaptcha\RequestMethodView source
class SocketPostTest extends TestCase {
public function testSubmitSuccess() {
$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 200 OK\n\nRESPONSEBODY");
$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('RESPONSEBODY', $response);
}
public function testOverrideSiteVerifyUrl() {
$socket = $this
->getMockBuilder(\ReCaptcha\RequestMethod\Socket::class)
->disableOriginalConstructor()
->setMethods(array(
'fsockopen',
'fwrite',
'fgets',
'feof',
'fclose',
))
->getMock();
$socket
->expects($this
->once())
->method('fsockopen')
->with('ssl://over.ride', 443, 0, '', 30)
->willReturn(true);
$socket
->expects($this
->once())
->method('fwrite')
->with($this
->matchesRegularExpression('/^POST \\/some\\/path.*Host: over\\.ride/s'));
$socket
->expects($this
->once())
->method('fgets')
->willReturn("HTTP/1.1 200 OK\n\nRESPONSEBODY");
$socket
->expects($this
->exactly(2))
->method('feof')
->will($this
->onConsecutiveCalls(false, true));
$socket
->expects($this
->once())
->method('fclose')
->willReturn(true);
$ps = new SocketPost($socket, 'https://over.ride/some/path');
$response = $ps
->submit(new RequestParameters("secret", "response", "remoteip", "version"));
$this
->assertEquals('RESPONSEBODY', $response);
}
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);
}
public function testConnectionFailureReturnsError() {
$socket = $this
->getMockBuilder(\ReCaptcha\RequestMethod\Socket::class)
->disableOriginalConstructor()
->setMethods(array(
'fsockopen',
))
->getMock();
$socket
->expects($this
->once())
->method('fsockopen')
->willReturn(false);
$ps = new SocketPost($socket);
$response = $ps
->submit(new RequestParameters("secret", "response", "remoteip", "version"));
$this
->assertEquals('{"success": false, "error-codes": ["' . ReCaptcha::E_CONNECTION_FAILED . '"]}', $response);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
SocketPostTest:: |
public | function | ||
SocketPostTest:: |
public | function | ||
SocketPostTest:: |
public | function | ||
SocketPostTest:: |
public | function |