diff --git a/src/Symfony/Component/HttpClient/Response/MockResponse.php b/src/Symfony/Component/HttpClient/Response/MockResponse.php index 82b2cc172f0aa..2c00108758bde 100644 --- a/src/Symfony/Component/HttpClient/Response/MockResponse.php +++ b/src/Symfony/Component/HttpClient/Response/MockResponse.php @@ -112,7 +112,7 @@ public function cancel(): void } $onProgress = $this->requestOptions['on_progress'] ?? static function () {}; - $dlSize = isset($this->headers['content-encoding']) || 'HEAD' === $this->info['http_method'] || \in_array($this->info['http_code'], [204, 304], true) ? 0 : (int) ($this->headers['content-length'][0] ?? 0); + $dlSize = isset($this->headers['content-encoding']) || 'HEAD' === ($this->info['http_method'] ?? null) || \in_array($this->info['http_code'], [204, 304], true) ? 0 : (int) ($this->headers['content-length'][0] ?? 0); $onProgress($this->offset, $dlSize, $this->info); } diff --git a/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php b/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php index 8d8b6af6227fb..e244c32526222 100644 --- a/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php +++ b/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php @@ -507,7 +507,7 @@ public function testResetsRequestCount() $this->assertSame(0, $client->getRequestsCount()); } - public function testCancellingMockResponseExecutesOnProgressWithUpdatedInfo() + public function testCancelingMockResponseExecutesOnProgressWithUpdatedInfo() { $client = new MockHttpClient(new MockResponse(['foo', 'bar', 'ccc'])); $canceled = false; diff --git a/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php b/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php index 6b172b1589ac1..0afac4ec74722 100644 --- a/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php +++ b/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php @@ -116,4 +116,12 @@ public function testErrorIsTakenIntoAccountInInitialization() 'error' => 'ccc error', ]))->getStatusCode(); } + + public function testCancelingAMockResponseNotIssuedByMockHttpClient() + { + $mockResponse = new MockResponse(); + $mockResponse->cancel(); + + $this->assertTrue($mockResponse->getInfo('canceled')); + } }