Skip to content

Commit 264ecc0

Browse files
Merge pull request #1480 from magento-nord/MAGETWO-72415
Fixed issues: - MAGETWO-72415: Unsafe call to extension attributes in downloadable CartItemProcessor
2 parents fc095b1 + e35bbc2 commit 264ecc0

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

app/code/Magento/Downloadable/Model/Quote/Item/CartItemProcessor.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public function __construct(
6363
public function convertToBuyRequest(CartItemInterface $cartItem)
6464
{
6565
if ($cartItem->getProductOption()
66+
&& $cartItem->getProductOption()->getExtensionAttributes()
6667
&& $cartItem->getProductOption()->getExtensionAttributes()->getDownloadableOption()
6768
) {
6869
$downloadableLinks = $cartItem->getProductOption()->getExtensionAttributes()->getDownloadableOption()

app/code/Magento/Downloadable/Test/Unit/Model/Quote/Item/CartItemProcessorTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,20 @@ public function testConvertToBuyRequest()
111111
$this->assertEquals($buyRequestMock, $this->model->convertToBuyRequest($cartItemMock));
112112
}
113113

114+
public function testConvertToBuyRequestWithoutExtensionAttributes()
115+
{
116+
$cartItemMock = $this->createPartialMock(
117+
\Magento\Quote\Model\Quote\Item::class,
118+
['getProductOption', 'setProductOption', 'getOptionByCode', 'getQty']
119+
);
120+
$productOptionMock = $this->createMock(\Magento\Quote\Api\Data\ProductOptionInterface::class);
121+
122+
$cartItemMock->expects($this->any())->method('getProductOption')->willReturn($productOptionMock);
123+
$productOptionMock->expects($this->atLeastOnce())->method('getExtensionAttributes')->willReturn(null);
124+
125+
$this->assertNull($this->model->convertToBuyRequest($cartItemMock));
126+
}
127+
114128
public function testProcessProductOptions()
115129
{
116130
$downloadableLinks = [1, 2];

0 commit comments

Comments
 (0)