Added tests for empty multipart/form-data.
This commit is contained in:
parent
c2a79a1076
commit
c481a9eb3a
3 changed files with 21 additions and 1 deletions
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
0.2503.150240
|
0.2503.150248
|
||||||
|
|
|
@ -80,6 +80,14 @@ final class HttpFormContentTest extends TestCase {
|
||||||
$this->assertEquals($expected, $extracted);
|
$this->assertEquals($expected, $extracted);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testMultipartFormEmpty(): void {
|
||||||
|
$form = MultipartFormContent::parseStream(
|
||||||
|
Stream::createStream("------geckoformboundaryf31072d915603e48fe9e0e5393a89f20--\r\n"),
|
||||||
|
'----geckoformboundaryf31072d915603e48fe9e0e5393a89f20'
|
||||||
|
);
|
||||||
|
$this->assertEquals(0, count($form->params));
|
||||||
|
}
|
||||||
|
|
||||||
public function testMultipartForm(): void {
|
public function testMultipartForm(): void {
|
||||||
$form = MultipartFormContent::parseStream(
|
$form = MultipartFormContent::parseStream(
|
||||||
Stream::createStreamFromFile(__DIR__ . '/HttpFormContentTest-multipart.bin', 'rb'),
|
Stream::createStreamFromFile(__DIR__ . '/HttpFormContentTest-multipart.bin', 'rb'),
|
||||||
|
|
|
@ -297,6 +297,11 @@ final class RouterTest extends TestCase {
|
||||||
$this->assertEquals(200, $response->getStatusCode());
|
$this->assertEquals(200, $response->getStatusCode());
|
||||||
$this->assertEquals('urlencoded:mewow', (string)$response->getBody());
|
$this->assertEquals('urlencoded:mewow', (string)$response->getBody());
|
||||||
|
|
||||||
|
// an empty string is valid too
|
||||||
|
$response = $router->handle(HttpRequest::createRequestWithBody('POST', '/optional-form', ['Content-Type' => ['application/x-www-form-urlencoded']], Stream::createStream('')));
|
||||||
|
$this->assertEquals(200, $response->getStatusCode());
|
||||||
|
$this->assertEquals('urlencoded:', (string)$response->getBody());
|
||||||
|
|
||||||
$response = $router->handle(HttpRequest::createRequestWithBody('POST', '/optional-form', ['Content-Type' => ['multipart/form-data; boundary="--soap12345"']], Stream::createStream(implode("\r\n", [
|
$response = $router->handle(HttpRequest::createRequestWithBody('POST', '/optional-form', ['Content-Type' => ['multipart/form-data; boundary="--soap12345"']], Stream::createStream(implode("\r\n", [
|
||||||
'----soap12345',
|
'----soap12345',
|
||||||
'Content-Disposition: form-data; name="test"',
|
'Content-Disposition: form-data; name="test"',
|
||||||
|
@ -308,6 +313,13 @@ final class RouterTest extends TestCase {
|
||||||
$this->assertEquals(200, $response->getStatusCode());
|
$this->assertEquals(200, $response->getStatusCode());
|
||||||
$this->assertEquals('multipart:wowof', (string)$response->getBody());
|
$this->assertEquals('multipart:wowof', (string)$response->getBody());
|
||||||
|
|
||||||
|
$response = $router->handle(HttpRequest::createRequestWithBody('POST', '/optional-form', ['Content-Type' => ['multipart/form-data; boundary="--soap12345"']], Stream::createStream(implode("\r\n", [
|
||||||
|
'----soap12345--',
|
||||||
|
'',
|
||||||
|
]))));
|
||||||
|
$this->assertEquals(200, $response->getStatusCode());
|
||||||
|
$this->assertEquals('multipart:', (string)$response->getBody());
|
||||||
|
|
||||||
$response = $router->handle(HttpRequest::createRequestWithoutBody('POST', '/required-urlencoded'));
|
$response = $router->handle(HttpRequest::createRequestWithoutBody('POST', '/required-urlencoded'));
|
||||||
$this->assertEquals(400, $response->getStatusCode());
|
$this->assertEquals(400, $response->getStatusCode());
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue