]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Util/ImagesTest.php
Add the possibility to use a different configuration directory
[friendica.git] / tests / src / Util / ImagesTest.php
index d35f9c4eca5179587c9a1231df215d91b9d0046e..ddadf9547f0be1f5c761221e885aba78285b8bc6 100644 (file)
@@ -2,12 +2,70 @@
 
 namespace Friendica\Test\src\Util;
 
+use Friendica\Test\DiceHttpMockHandlerTrait;
 use Friendica\Test\MockedTest;
+use Friendica\Util\Images;
+use GuzzleHttp\Handler\MockHandler;
+use GuzzleHttp\Psr7\Response;
 
 class ImagesTest extends MockedTest
 {
-       public function testGetInfoFromURL()
+       use DiceHttpMockHandlerTrait;
+
+       protected function setUp(): void
+       {
+               parent::setUp();
+
+               $this->setupHttpMockHandler();
+       }
+
+       public function dataImages()
+       {
+               return [
+                       'image' => [
+                               'url'     => 'https://pbs.twimg.com/profile_images/2365515285/9re7kx4xmc0eu9ppmado.png',
+                               'headers' => [
+                                       'Server'                        => 'tsa_b',
+                                       'Content-Type'                  => 'image/png',
+                                       'Cache-Control'                 => 'max-age=604800,must-revalidate',
+                                       'Last-Modified'                 => 'Thu,04Nov201001:42:54GMT',
+                                       'Content-Length'                => '24875',
+                                       'Access-Control-Allow-Origin'   => '*',
+                                       'Access-Control-Expose-Headers' => 'Content-Length',
+                                       'Date'                          => 'Mon,23Aug202112:39:00GMT',
+                                       'Connection'                    => 'keep-alive',
+                               ],
+                               'data'      => file_get_contents(__DIR__ . '/../../datasets/curl/image.content'),
+                               'assertion' => [
+                                       '0'    => '400',
+                                       '1'    => '400',
+                                       '2'    => '3',
+                                       '3'    => 'width="400" height="400"',
+                                       'bits' => '8',
+                                       'mime' => 'image/png',
+                                       'size' => '24875',
+                               ]
+                       ],
+                       'emptyUrl' => [
+                               'url'       => '',
+                               'headers'   => [],
+                               'data'      => '',
+                               'assertion' => [],
+                       ],
+               ];
+       }
+
+       /**
+        * Test the Images::getInfoFromURL() method (only remote images, not local/relative!)
+        *
+        * @dataProvider dataImages
+        */
+       public function testGetInfoFromRemotURL(string $url, array $headers, string $data, array $assertion)
        {
+               $this->httpRequestHandler->setHandler(new MockHandler([
+                       new Response(200, $headers, $data),
+               ]));
 
+               self::assertArraySubset($assertion, Images::getInfoFromURL($url));
        }
 }