]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Network/CurlResultTest.php
Merge pull request #7822 from MrPetovan/task/router-parameter-content
[friendica.git] / tests / src / Network / CurlResultTest.php
index 13a14d985eef931a1783c6462865604eca52ca24..03e415a99b45a6b32f56765425b24436c9d55708 100644 (file)
@@ -2,17 +2,31 @@
 
 namespace Friendica\Test\src\Network;
 
+use Dice\Dice;
+use Friendica\BaseObject;
 use Friendica\Network\CurlResult;
+use Mockery\MockInterface;
 use PHPUnit\Framework\TestCase;
+use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
 
 class CurlResultTest extends TestCase
 {
-       public function setUp()
+       protected function setUp()
        {
                parent::setUp();
 
-               require_once __DIR__.'/../../../boot.php';
-               require_once __DIR__.'/../../../include/text.php';
+
+               /** @var Dice|MockInterface $dice */
+               $dice = \Mockery::mock(Dice::class)->makePartial();
+               $dice = $dice->addRules(include __DIR__ . '/../../../static/dependencies.config.php');
+
+               $logger = new NullLogger();
+               $dice->shouldReceive('create')
+                          ->with(LoggerInterface::class)
+                          ->andReturn($logger);
+
+               BaseObject::setDependencyInjection($dice);
        }
 
        /**
@@ -42,6 +56,8 @@ class CurlResultTest extends TestCase
 
        /**
         * @small
+        * @runInSeparateProcess
+        * @preserveGlobalState disabled
         */
        public function testRedirect()
        {
@@ -94,6 +110,8 @@ class CurlResultTest extends TestCase
 
        /**
         * @small
+        * @runInSeparateProcess
+        * @preserveGlobalState disabled
         */
        public function testRedirectHeader()
        {
@@ -116,4 +134,59 @@ class CurlResultTest extends TestCase
                $this->assertSame('https://test.local/test/it?key=value', $curlResult->getUrl());
                $this->assertSame('https://test.other/some/?key=value', $curlResult->getRedirectUrl());
        }
+
+       /**
+        * @small
+        */
+       public function testInHeader()
+       {
+               $header = file_get_contents(__DIR__ . '/../../datasets/curl/about.head');
+               $body = file_get_contents(__DIR__ . '/../../datasets/curl/about.body');
+
+               $curlResult = new CurlResult('https://test.local', $header . $body, [
+                       'http_code' => 200,
+                       'content_type' => 'text/html; charset=utf-8',
+                       'url' => 'https://test.local'
+               ]);
+               $this->assertTrue($curlResult->inHeader('vary'));
+               $this->assertFalse($curlResult->inHeader('wrongHeader'));
+       }
+
+        /**
+        * @small
+        */
+       public function testGetHeaderArray()
+       {
+               $header = file_get_contents(__DIR__ . '/../../datasets/curl/about.head');
+               $body = file_get_contents(__DIR__ . '/../../datasets/curl/about.body');
+
+               $curlResult = new CurlResult('https://test.local', $header . $body, [
+                       'http_code' => 200,
+                       'content_type' => 'text/html; charset=utf-8',
+                       'url' => 'https://test.local'
+               ]);
+
+               $headers = $curlResult->getHeaderArray();
+
+               $this->assertNotEmpty($headers);
+               $this->assertArrayHasKey('vary', $headers);
+       }
+
+        /**
+        * @small
+        */
+       public function testGetHeaderWithParam()
+       {
+               $header = file_get_contents(__DIR__ . '/../../datasets/curl/about.head');
+               $body = file_get_contents(__DIR__ . '/../../datasets/curl/about.body');
+
+               $curlResult = new CurlResult('https://test.local', $header . $body, [
+                       'http_code' => 200,
+                       'content_type' => 'text/html; charset=utf-8',
+                       'url' => 'https://test.local'
+               ]);
+
+               $this->assertNotEmpty($curlResult->getHeader());
+               $this->assertEmpty($curlResult->getHeader('wrongHeader'));
+       }
 }