Skip to content

Commit 8d9be51

Browse files
committed
test: response formdata
1 parent 74eab58 commit 8d9be51

File tree

2 files changed

+28
-7
lines changed

2 files changed

+28
-7
lines changed

src/Response.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,7 @@ public function endDeferredResponse(?string $integrity = null):void {
198198
public function arrayBuffer():Promise {
199199
$promise = $this->getPromise();
200200
$promise->then(function(string $responseText) {
201-
$arrayBuffer = $this->arrayBufferFromResponseText($responseText);
202-
203-
$this->deferred->resolve($arrayBuffer);
201+
return $this->arrayBufferFromResponseText($responseText);
204202
});
205203

206204
return $promise;
@@ -237,8 +235,7 @@ private function arrayBufferFromResponseText(string $responseText):ArrayBuffer {
237235
public function blob():Promise {
238236
$promise = $this->getPromise();
239237
$promise->then(function(string $responseText) {
240-
$blob = $this->blobFromResponseText($responseText);
241-
$this->deferred->resolve($blob);
238+
return $this->blobFromResponseText($responseText);
242239
});
243240

244241
return $promise;
@@ -322,8 +319,7 @@ private function formDataFromResponseText(string $responseText):FormData {
322319
public function json(int $depth = 512, int $options = 0):Promise {
323320
$promise = $this->getPromise();
324321
$promise->then(function(string $responseText)use($depth, $options) {
325-
$json = $this->jsonFromResponseText($responseText, $depth, $options);
326-
$this->deferred->resolve($json);
322+
return $this->jsonFromResponseText($responseText, $depth, $options);
327323
});
328324

329325
return $promise;

test/phpunit/ResponseTest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
<?php
22
namespace Gt\Http\Test;
33

4+
use Gt\Http\FormData;
45
use Gt\Http\Header\ResponseHeaders;
56
use Gt\Http\Request;
67
use Gt\Http\Response;
78
use Gt\Http\StatusCode;
89
use Gt\Http\Stream;
910
use Gt\Http\Uri;
1011
use Gt\Json\JsonObject;
12+
use Gt\Promise\Deferred;
1113
use PHPUnit\Framework\TestCase;
1214

1315
class ResponseTest extends TestCase {
@@ -155,6 +157,29 @@ public function testAwaitText():void {
155157
self::assertSame($responseText, $actualText);
156158
}
157159

160+
public function testFormData():void {
161+
$data = [
162+
"name" => "Cody",
163+
"colour" => "orange",
164+
];
165+
166+
$stream = new Stream();
167+
$stream->write(http_build_query($data));
168+
169+
$sut = new Response();
170+
$sut = $sut->withHeader("Content-type", "application/x-www-form-urlencoded");
171+
$sut = $sut->withBody($stream);
172+
173+
$actualFormData = null;
174+
$sut->formData()->then(function($formData) use(&$actualFormData) {
175+
$actualFormData = $formData;
176+
});
177+
178+
self::assertInstanceOf(FormData::class, $actualFormData);
179+
self::assertSame("Cody", $actualFormData->getString("name"));
180+
self::assertSame("orange", $actualFormData->getString("colour"));
181+
}
182+
158183
public function testRedirect_sendsFileLineDebug():void {
159184
$sut = (new Response());
160185
$sut->redirect("/somewhere");

0 commit comments

Comments
 (0)