]> git.mxchange.org Git - friendica.git/commitdiff
another phpunit optimiziation ..
authorPhilipp <admin@philipp.info>
Sun, 12 Feb 2023 14:41:25 +0000 (15:41 +0100)
committerPhilipp <admin@philipp.info>
Sun, 12 Feb 2023 14:41:25 +0000 (15:41 +0100)
src/Network/HTTPClient/Client/HttpClient.php
src/Network/HTTPClient/Response/CurlResult.php
tests/src/Network/HTTPClient/Response/CurlResultTest.php

index 4ee0842150c96a93e40e1776a9185c1cb9c1c8d2..31eb22be0ea7c9eb5d159e58266fdc736c9ffd7f 100644 (file)
@@ -76,7 +76,7 @@ class HttpClient implements ICanSendHttpRequests
                if(!filter_var($host, FILTER_VALIDATE_IP) && !@dns_get_record($host . '.', DNS_A + DNS_AAAA) && !gethostbyname($host)) {
                        $this->logger->debug('URL cannot be resolved.', ['url' => $url, 'callstack' => System::callstack(20)]);
                        $this->profiler->stopRecording();
-                       return CurlResult::createErrorCurl($url);
+                       return CurlResult::createErrorCurl($this->logger, $url);
                }
 
                if (Network::isLocalLink($url)) {
@@ -86,7 +86,7 @@ class HttpClient implements ICanSendHttpRequests
                if (strlen($url) > 1000) {
                        $this->logger->debug('URL is longer than 1000 characters.', ['url' => $url, 'callstack' => System::callstack(20)]);
                        $this->profiler->stopRecording();
-                       return CurlResult::createErrorCurl(substr($url, 0, 200));
+                       return CurlResult::createErrorCurl($this->logger, substr($url, 0, 200));
                }
 
                $parts2     = [];
@@ -105,7 +105,7 @@ class HttpClient implements ICanSendHttpRequests
                if (Network::isUrlBlocked($url)) {
                        $this->logger->info('Domain is blocked.', ['url' => $url]);
                        $this->profiler->stopRecording();
-                       return CurlResult::createErrorCurl($url);
+                       return CurlResult::createErrorCurl($this->logger, $url);
                }
 
                $conf = [];
@@ -176,11 +176,11 @@ class HttpClient implements ICanSendHttpRequests
                                $exception->hasResponse()) {
                                return new GuzzleResponse($exception->getResponse(), $url, $exception->getCode(), '');
                        } else {
-                               return new CurlResult($url, '', ['http_code' => 500], $exception->getCode(), '');
+                               return new CurlResult($this->logger, $url, '', ['http_code' => 500], $exception->getCode(), '');
                        }
                } catch (InvalidArgumentException | \InvalidArgumentException $argumentException) {
                        $this->logger->info('Invalid Argument for HTTP call.', ['url' => $url, 'method' => $method, 'exception' => $argumentException]);
-                       return new CurlResult($url, '', ['http_code' => 500], $argumentException->getCode(), $argumentException->getMessage());
+                       return new CurlResult($this->logger, $url, '', ['http_code' => 500], $argumentException->getCode(), $argumentException->getMessage());
                } finally {
                        unlink($conf['sink']);
                        $this->logger->debug('Request stop.', ['url' => $url, 'method' => $method]);
index 044eb185717764767b6b84fd97d0c705bc9cc09f..f187fb62ab309fcbb9e3f9178bc0186e4fc311c0 100644 (file)
@@ -25,6 +25,7 @@ use Friendica\Core\Logger;
 use Friendica\Network\HTTPClient\Capability\ICanHandleHttpResponses;
 use Friendica\Network\HTTPException\UnprocessableEntityException;
 use Friendica\Util\Network;
+use Psr\Log\LoggerInterface;
 
 /**
  * A content class for Curl call results
@@ -96,6 +97,11 @@ class CurlResult implements ICanHandleHttpResponses
         */
        private $error;
 
+       /**
+        * @var LoggerInterface
+        */
+       protected $logger;
+
        /**
         * Creates an errored CURL response
         *
@@ -104,9 +110,9 @@ class CurlResult implements ICanHandleHttpResponses
         * @return ICanHandleHttpResponses a CURL with error response
         * @throws UnprocessableEntityException
         */
-       public static function createErrorCurl(string $url = '')
+       public static function createErrorCurl(LoggerInterface $logger, string $url = '')
        {
-               return new CurlResult($url, '', ['http_code' => 0]);
+               return new CurlResult($logger, $url, '', ['http_code' => 0]);
        }
 
        /**
@@ -120,8 +126,10 @@ class CurlResult implements ICanHandleHttpResponses
         *
         * @throws UnprocessableEntityException when HTTP code of the CURL response is missing
         */
-       public function __construct(string $url, string $result, array $info, int $errorNumber = 0, string $error = '')
+       public function __construct(LoggerInterface $logger, string $url, string $result, array $info, int $errorNumber = 0, string $error = '')
        {
+               $this->logger = $logger;
+
                if (!array_key_exists('http_code', $info)) {
                        throw new UnprocessableEntityException('CURL response doesn\'t contains a response HTTP code');
                }
@@ -132,7 +140,7 @@ class CurlResult implements ICanHandleHttpResponses
                $this->errorNumber = $errorNumber;
                $this->error       = $error;
 
-               Logger::debug('construct', ['url' => $url, 'returncode' => $this->returnCode, 'result' => $result]);
+               $this->logger->debug('construct', ['url' => $url, 'returncode' => $this->returnCode, 'result' => $result]);
 
                $this->parseBodyHeader($result);
                $this->checkSuccess();
@@ -172,7 +180,7 @@ class CurlResult implements ICanHandleHttpResponses
                }
 
                if (!$this->isSuccess) {
-                       Logger::debug('debug', ['info' => $this->info]);
+                       $this->logger->debug('debug', ['info' => $this->info]);
                }
 
                if (!$this->isSuccess && $this->errorNumber == CURLE_OPERATION_TIMEDOUT) {
index 4cd89906209efd9ad378df2dca7710e4698b8725..e5047d6af4409ae65cd6872dd404c4cf4b2d2707 100644 (file)
 
 namespace Friendica\Test\src\Network\HTTPClient\Response;
 
-use Dice\Dice;
-use Friendica\DI;
 use Friendica\Network\HTTPClient\Response\CurlResult;
-use Mockery\MockInterface;
 use PHPUnit\Framework\TestCase;
-use Psr\Log\LoggerInterface;
 use Psr\Log\NullLogger;
 
 class CurlResultTest extends TestCase
 {
-       protected function setUp(): void
-       {
-               parent::setUp();
-
-               /** @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);
-
-               DI::init($dice);
-       }
-
        /**
         * @small
         */
@@ -57,7 +37,7 @@ class CurlResultTest extends TestCase
                $body = file_get_contents(__DIR__ . '/../../../../datasets/curl/about.body');
 
 
-               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult('https://test.local', $header . $body, [
+               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult(new NullLogger(),'https://test.local', $header . $body, [
                        'http_code' => 200,
                        'content_type' => 'text/html; charset=utf-8',
                        'url' => 'https://test.local'
@@ -85,7 +65,7 @@ class CurlResultTest extends TestCase
                $body = file_get_contents(__DIR__ . '/../../../../datasets/curl/about.body');
 
 
-               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult('https://test.local/test/it', $header . $body, [
+               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult(new NullLogger(),'https://test.local/test/it', $header . $body, [
                        'http_code' => 301,
                        'content_type' => 'text/html; charset=utf-8',
                        'url' => 'https://test.local/test/it',
@@ -112,7 +92,7 @@ class CurlResultTest extends TestCase
                $body = file_get_contents(__DIR__ . '/../../../../datasets/curl/about.body');
 
 
-               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult('https://test.local/test/it', $header . $body, [
+               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult(new NullLogger(),'https://test.local/test/it', $header . $body, [
                        'http_code' => 500,
                        'content_type' => 'text/html; charset=utf-8',
                        'url' => 'https://test.local/test/it',
@@ -141,7 +121,7 @@ class CurlResultTest extends TestCase
                $body = file_get_contents(__DIR__ . '/../../../../datasets/curl/about.body');
 
 
-               $curlResult = new CurlResult('https://test.local/test/it?key=value', $header . $body, [
+               $curlResult = new CurlResult(new NullLogger(),'https://test.local/test/it?key=value', $header . $body, [
                        'http_code' => 301,
                        'content_type' => 'text/html; charset=utf-8',
                        'url' => 'https://test.local/test/it?key=value',
@@ -165,7 +145,7 @@ class CurlResultTest extends TestCase
                $header = file_get_contents(__DIR__ . '/../../../../datasets/curl/about.head');
                $body = file_get_contents(__DIR__ . '/../../../../datasets/curl/about.body');
 
-               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult('https://test.local', $header . $body, [
+               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult(new NullLogger(),'https://test.local', $header . $body, [
                        'http_code' => 200,
                        'content_type' => 'text/html; charset=utf-8',
                        'url' => 'https://test.local'
@@ -182,7 +162,7 @@ class CurlResultTest extends TestCase
                $header = file_get_contents(__DIR__ . '/../../../../datasets/curl/about.head');
                $body = file_get_contents(__DIR__ . '/../../../../datasets/curl/about.body');
 
-               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult('https://test.local', $header . $body, [
+               $curlResult = new \Friendica\Network\HTTPClient\Response\CurlResult(new NullLogger(), 'https://test.local', $header . $body, [
                        'http_code' => 200,
                        'content_type' => 'text/html; charset=utf-8',
                        'url' => 'https://test.local'
@@ -202,7 +182,7 @@ class CurlResultTest extends TestCase
                $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, [
+               $curlResult = new CurlResult(new NullLogger(),'https://test.local', $header . $body, [
                        'http_code' => 200,
                        'content_type' => 'text/html; charset=utf-8',
                        'url' => 'https://test.local'