]> git.mxchange.org Git - friendica.git/blob - tests/src/Network/HTTPClient/Client/HTTPClientTest.php
Merge remote-tracking branch 'upstream/develop' into inbox-gsid
[friendica.git] / tests / src / Network / HTTPClient / Client / HTTPClientTest.php
1 <?php
2 /**
3  * @copyright Copyright (C) 2010-2023, the Friendica project
4  *
5  * @license GNU AGPL version 3 or any later version
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Affero General Public License as
9  * published by the Free Software Foundation, either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Affero General Public License for more details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19  *
20  */
21
22 namespace Friendica\Test\src\Network\HTTPClient\Client;
23
24 use Friendica\DI;
25 use Friendica\Test\DiceHttpMockHandlerTrait;
26 use Friendica\Test\MockedTest;
27 use GuzzleHttp\Handler\MockHandler;
28 use GuzzleHttp\Psr7\Response;
29
30 class HTTPClientTest extends MockedTest
31 {
32         use DiceHttpMockHandlerTrait;
33
34         protected function setUp(): void
35         {
36                 parent::setUp();
37
38                 $this->setupHttpMockHandler();
39         }
40
41         /**
42          * Test for issue https://github.com/friendica/friendica/issues/10473#issuecomment-907749093
43          */
44         public function testInvalidURI()
45         {
46                 $this->httpRequestHandler->setHandler(new MockHandler([
47                         new Response(301, ['Location' => 'https:///']),
48                 ]));
49
50                 self::assertFalse(DI::httpClient()->get('https://friendica.local')->isSuccess());
51         }
52
53         /**
54          * Test for issue https://github.com/friendica/friendica/issues/11726
55          */
56         public function testRedirect()
57         {
58                 $this->httpRequestHandler->setHandler(new MockHandler([
59                         new Response(302, ['Location' => 'https://mastodon.social/about']),
60                         new Response(200, ['Location' => 'https://mastodon.social']),
61                 ]));
62
63                 $result = DI::httpClient()->get('https://mastodon.social');
64                 self::assertEquals('https://mastodon.social', $result->getUrl());
65                 self::assertEquals('https://mastodon.social/about', $result->getRedirectUrl());
66         }
67 }