Skip to content

Commit 6e2210d

Browse files
committed
Merge branch 'ACP2E-280' of https://github.com/magento-l3/magento2ce into PR-2021-12-21
2 parents 7996e89 + 2a6660a commit 6e2210d

File tree

3 files changed

+25
-27
lines changed

3 files changed

+25
-27
lines changed

app/code/Magento/ReleaseNotification/Model/ContentProvider/Http/HttpContentProvider.php

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,21 @@ class HttpContentProvider implements ContentProviderInterface
3232
private $urlBuilder;
3333

3434
/**
35-
* HttpContentProvider constructor.
3635
* @param ClientInterface $httpClient
3736
* @param UrlBuilder $urlBuilder
3837
* @param LoggerInterface $logger
38+
* @param int $requestTimeout
3939
*/
4040
public function __construct(
4141
ClientInterface $httpClient,
4242
UrlBuilder $urlBuilder,
43-
LoggerInterface $logger
43+
LoggerInterface $logger,
44+
int $requestTimeout = 30
4445
) {
4546
$this->httpClient = $httpClient;
4647
$this->urlBuilder = $urlBuilder;
4748
$this->logger = $logger;
49+
$this->httpClient->setTimeout($requestTimeout);
4850
}
4951

5052
/**
@@ -63,12 +65,7 @@ public function getContent($version, $edition, $locale)
6365
}
6466
}
6567
} catch (\Exception $e) {
66-
$this->logger->warning(
67-
sprintf(
68-
'Failed to retrieve the release notification content. The response is: %s',
69-
empty($result) ? 'Response body is empty.' : $result
70-
)
71-
);
68+
$this->logger->warning('Failed to retrieve the release notification content.', ['exception' => $e]);
7269
}
7370

7471
return $result;
@@ -91,7 +88,7 @@ private function retrieveContent($version, $edition, $locale)
9188
/**
9289
* Returns the response body from the HTTP client
9390
*
94-
* @param $url
91+
* @param string $url
9592
* @return string
9693
*/
9794
private function getResponse($url)

app/code/Magento/ReleaseNotification/Test/Unit/Model/ContentProvider/Http/HttpContentProviderTest.php

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
namespace Magento\ReleaseNotification\Test\Unit\Model\ContentProvider\Http;
99

1010
use Magento\Framework\HTTP\ClientInterface;
11-
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1211
use Magento\ReleaseNotification\Model\ContentProvider\Http\HttpContentProvider;
1312
use Magento\ReleaseNotification\Model\ContentProvider\Http\UrlBuilder;
1413
use PHPUnit\Framework\MockObject\MockObject;
@@ -42,23 +41,19 @@ class HttpContentProviderTest extends TestCase
4241

4342
protected function setUp(): void
4443
{
45-
$this->loggerMock = $this->getMockBuilder(LoggerInterface::class)
46-
->getMockForAbstractClass();
47-
$this->urlBuilderMock = $this->getMockBuilder(UrlBuilder::class)
48-
->disableOriginalConstructor()
49-
->setMethods(['getUrl'])
50-
->getMock();
51-
$this->httpClientMock = $this->getMockBuilder(ClientInterface::class)
52-
->getMockForAbstractClass();
53-
54-
$objectManager = new ObjectManager($this);
55-
$this->httpContentProvider = $objectManager->getObject(
56-
HttpContentProvider::class,
57-
[
58-
'httpClient' => $this->httpClientMock,
59-
'urlBuilder' => $this->urlBuilderMock,
60-
'logger' => $this->loggerMock
61-
]
44+
$this->loggerMock = $this->createMock(LoggerInterface::class);
45+
$this->urlBuilderMock = $this->createMock(UrlBuilder::class);
46+
$this->httpClientMock = $this->createMock(ClientInterface::class);
47+
$requestTimeout = 10;
48+
$this->httpClientMock->expects($this->once())
49+
->method('setTimeout')
50+
->with($requestTimeout);
51+
52+
$this->httpContentProvider = new HttpContentProvider(
53+
$this->httpClientMock,
54+
$this->urlBuilderMock,
55+
$this->loggerMock,
56+
$requestTimeout
6257
);
6358
}
6459

app/code/Magento/ReleaseNotification/etc/di.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,10 @@
3030
<argument name="pool" xsi:type="object">notificationPool</argument>
3131
</arguments>
3232
</type>
33+
<type name="Magento\ReleaseNotification\Model\ContentProvider\Http\HttpContentProvider">
34+
<arguments>
35+
<argument name="httpClient" xsi:type="object" shared="false">Magento\Framework\HTTP\ClientInterface</argument>
36+
<argument name="requestTimeout" xsi:type="number">5</argument>
37+
</arguments>
38+
</type>
3339
</config>

0 commit comments

Comments
 (0)