diff --git a/src/Network/HTTPClient/Factory/HttpClient.php b/src/Network/HTTPClient/Factory/HttpClient.php index b3fd76936..29ef3c09e 100644 --- a/src/Network/HTTPClient/Factory/HttpClient.php +++ b/src/Network/HTTPClient/Factory/HttpClient.php @@ -94,11 +94,11 @@ class HttpClient extends BaseFactory $guzzle = new GuzzleHttp\Client([ RequestOptions::ALLOW_REDIRECTS => [ - 'max' => 8, - 'on_redirect' => $onRedirect, - 'track_redirect' => true, - 'strict' => true, - 'referer' => true, + 'max' => 8, + 'on_redirect' => $onRedirect, + 'track_redirects' => true, + 'strict' => true, + 'referer' => true, ], RequestOptions::HTTP_ERRORS => false, // Without this setting it seems as if some webservers send compressed content diff --git a/tests/src/Network/HTTPClient/Client/HTTPClientTest.php b/tests/src/Network/HTTPClient/Client/HTTPClientTest.php index a6a873c83..cbe2a8436 100644 --- a/tests/src/Network/HTTPClient/Client/HTTPClientTest.php +++ b/tests/src/Network/HTTPClient/Client/HTTPClientTest.php @@ -49,4 +49,19 @@ class HTTPClientTest extends MockedTest self::assertFalse(DI::httpClient()->get('https://friendica.local')->isSuccess()); } + + /** + * Test for issue https://github.com/friendica/friendica/issues/11726 + */ + public function testRedirect() + { + $this->httpRequestHandler->setHandler(new MockHandler([ + new Response(302, ['Location' => 'https://mastodon.social/about']), + new Response(200, ['Location' => 'https://mastodon.social']), + ])); + + $result = DI::httpClient()->get('https://mastodon.social'); + self::assertEquals('https://mastodon.social', $result->getUrl()); + self::assertEquals('https://mastodon.social/about', $result->getRedirectUrl()); + } }