Skip to content

Commit 9000e60

Browse files
WyriHaximusclue
authored andcommitted
Added tests for the 411 and 413 errors
1 parent 7e046af commit 9000e60

File tree

1 file changed

+24
-27
lines changed

1 file changed

+24
-27
lines changed

tests/Middleware/RequestBodyBufferTest.php

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use Psr\Http\Message\ServerRequestInterface;
66
use React\Http\Middleware\RequestBodyBuffer;
7-
use React\Http\Response;
87
use React\Http\ServerRequest;
98
use React\Tests\Http\TestCase;
109
use RingCentral\Psr7\BufferStream;
@@ -36,47 +35,45 @@ function (ServerRequestInterface $request) use (&$exposedRequest) {
3635
$this->assertSame($body, $exposedRequest->getBody()->getContents());
3736
}
3837

39-
public function testToLargeBody()
38+
public function test411Error()
4039
{
41-
$size = $this->iniMaxPostSize() + 1;
42-
$stream = new BufferStream($size);
43-
$stream->write(str_repeat('x', $size));
40+
$body = $this->getMockBuilder('Psr\Http\Message\StreamInterface')->getMock();
41+
$body->expects($this->once())->method('getSize')->willReturn(null);
42+
4443
$serverRequest = new ServerRequest(
4544
'GET',
4645
'https://example.com/',
4746
array(),
48-
$stream
47+
$body
4948
);
5049

51-
$shouldNotHaveBeenCalled = false;
5250
$buffer = new RequestBodyBuffer();
5351
$response = $buffer(
5452
$serverRequest,
55-
function () use (&$shouldNotHaveBeenCalled) {
56-
$shouldNotHaveBeenCalled = true;
57-
}
53+
function () {}
5854
);
5955

60-
$this->assertFalse($shouldNotHaveBeenCalled);
61-
$this->assertInstanceOf('React\Http\Response', $response);
62-
$this->assertSame(413, $response->getStatusCode());
63-
$this->assertSame('Request body exceeds allowed limit', (string)$response->getBody());
56+
$this->assertSame(411, $response->getStatusCode());
6457
}
6558

66-
private function iniMaxPostSize()
59+
public function test413Error()
6760
{
68-
$size = ini_get('post_max_size');
69-
$suffix = strtoupper(substr($size, -1));
70-
if ($suffix === 'K') {
71-
return substr($size, 0, -1) * 1024;
72-
}
73-
if ($suffix === 'M') {
74-
return substr($size, 0, -1) * 1024 * 1024;
75-
}
76-
if ($suffix === 'G') {
77-
return substr($size, 0, -1) * 1024 * 1024 * 1024;
78-
}
61+
$stream = new BufferStream(2);
62+
$stream->write('aa');
7963

80-
return $size;
64+
$serverRequest = new ServerRequest(
65+
'GET',
66+
'https://example.com/',
67+
array(),
68+
$stream
69+
);
70+
71+
$buffer = new RequestBodyBuffer(1);
72+
$response = $buffer(
73+
$serverRequest,
74+
function () {}
75+
);
76+
77+
$this->assertSame(413, $response->getStatusCode());
8178
}
8279
}

0 commit comments

Comments
 (0)