Skip to content

Commit c78fbc0

Browse files
author
Leandro Ferraz Luvisotto
committed
Merge branch '2.3-develop' of github.com:magento/magento2 into 2.3-develop-missing-phpdoc-comment
2 parents 949de44 + d849f99 commit c78fbc0

File tree

63 files changed

+608
-211
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+608
-211
lines changed

.github/ISSUE_TEMPLATE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828

2929
### Expected result
3030
<!--- Tell us what should happen -->
31-
1. [Screenshot, logs]
31+
1. [Screenshots, logs or description]
3232

3333
### Actual result
3434
<!--- Tell us what happens instead -->
35-
1. [Screenshot, logs]
35+
1. [Screenshots, logs or description]

app/code/Magento/Braintree/Test/Unit/Gateway/Response/PayPal/VaultDetailsHandlerTest.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ protected function setUp()
8888

8989
$this->paymentInfoMock = $this->getMockBuilder(Payment::class)
9090
->disableOriginalConstructor()
91-
->setMethods(['__wakeup'])
91+
->setMethods(['__wakeup', 'getExtensionAttributes'])
9292
->getMock();
9393

9494
$this->paymentTokenMock = $objectManager->getObject(PaymentToken::class);
@@ -107,6 +107,10 @@ protected function setUp()
107107
->setMethods(['create'])
108108
->getMock();
109109

110+
$this->paymentInfoMock->expects(self::any())
111+
->method('getExtensionAttributes')
112+
->willReturn($this->paymentExtensionMock);
113+
110114
$this->subject = [
111115
'payment' => $this->paymentDataObjectMock,
112116
];
@@ -184,7 +188,7 @@ public function testHandleWithoutToken()
184188
->method('create');
185189

186190
$this->handler->handle($this->subject, $response);
187-
self::assertNull($this->paymentInfoMock->getExtensionAttributes());
191+
self::assertNotNull($this->paymentInfoMock->getExtensionAttributes());
188192
}
189193

190194
/**

app/code/Magento/Braintree/Test/Unit/Gateway/Response/VaultDetailsHandlerTest.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,11 @@ protected function setUp()
8080

8181
$this->payment = $this->getMockBuilder(Payment::class)
8282
->disableOriginalConstructor()
83-
->setMethods(['__wakeup'])
83+
->setMethods(['__wakeup', 'getExtensionAttributes'])
8484
->getMock();
8585

86+
$this->payment->expects(self::any())->method('getExtensionAttributes')->willReturn($this->paymentExtension);
87+
8688
$config = $this->getConfigMock();
8789

8890
$this->paymentHandler = new VaultDetailsHandler(

app/code/Magento/Braintree/Test/Unit/Model/Paypal/Helper/QuoteUpdaterTest.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\Braintree\Observer\DataAssignObserver;
1414
use Magento\Braintree\Gateway\Config\PayPal\Config;
1515
use Magento\Braintree\Model\Paypal\Helper\QuoteUpdater;
16+
use Magento\Quote\Api\Data\CartExtensionInterface;
1617

1718
/**
1819
* Class QuoteUpdaterTest
@@ -281,7 +282,7 @@ private function updateQuoteStep(\PHPUnit_Framework_MockObject_MockObject $quote
281282
*/
282283
private function getQuoteMock()
283284
{
284-
return $this->getMockBuilder(Quote::class)
285+
$quoteMock = $this->getMockBuilder(Quote::class)
285286
->setMethods(
286287
[
287288
'getIsVirtual',
@@ -291,9 +292,21 @@ private function getQuoteMock()
291292
'collectTotals',
292293
'getShippingAddress',
293294
'getBillingAddress',
295+
'getExtensionAttributes'
294296
]
295297
)->disableOriginalConstructor()
296298
->getMock();
299+
300+
$cartExtensionMock = $this->getMockBuilder(CartExtensionInterface::class)
301+
->setMethods(['setShippingAssignments'])
302+
->disableOriginalConstructor()
303+
->getMock();
304+
305+
$quoteMock->expects(self::any())
306+
->method('getExtensionAttributes')
307+
->willReturn($cartExtensionMock);
308+
309+
return $quoteMock;
297310
}
298311

299312
/**

app/code/Magento/Catalog/Block/Product/Compare/ListCompare.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,22 @@ public function getProductAttributeValue($product, $attribute)
213213
return (string)$value == '' ? __('No') : $value;
214214
}
215215

216+
/**
217+
* Check if any of the products has a value set for the attribute
218+
*
219+
* @param \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute
220+
* @return bool
221+
*/
222+
public function hasAttributeValueForProducts($attribute)
223+
{
224+
foreach ($this->getItems() as $item) {
225+
if ($item->hasData($attribute->getAttributeCode())) {
226+
return true;
227+
}
228+
}
229+
return false;
230+
}
231+
216232
/**
217233
* Retrieve Print URL
218234
*

app/code/Magento/Catalog/Model/Product.php

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2535,13 +2535,7 @@ public function setTypeId($typeId)
25352535
*/
25362536
public function getExtensionAttributes()
25372537
{
2538-
$extensionAttributes = $this->_getExtensionAttributes();
2539-
if (null === $extensionAttributes) {
2540-
/** @var \Magento\Catalog\Api\Data\ProductExtensionInterface $extensionAttributes */
2541-
$extensionAttributes = $this->extensionAttributesFactory->create(ProductInterface::class);
2542-
$this->setExtensionAttributes($extensionAttributes);
2543-
}
2544-
return $extensionAttributes;
2538+
return $this->_getExtensionAttributes();
25452539
}
25462540

25472541
/**

app/code/Magento/Catalog/Model/Product/Price/TierPriceStorage.php

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,10 @@ private function getExistingPrices(array $skus, $groupBySku = false)
172172
$rawPrices = $this->tierPricePersistence->get($ids);
173173
$prices = [];
174174

175+
$linkField = $this->tierPricePersistence->getEntityLinkField();
176+
$skuByIdLookup = $this->buildSkuByIdLookup($skus);
175177
foreach ($rawPrices as $rawPrice) {
176-
$sku = $this->retrieveSkuById($rawPrice[$this->tierPricePersistence->getEntityLinkField()], $skus);
178+
$sku = $skuByIdLookup[$rawPrice[$linkField]];
177179
$price = $this->tierPriceFactory->create($rawPrice, $sku);
178180
if ($groupBySku) {
179181
$prices[$sku][] = $price;
@@ -300,21 +302,21 @@ private function isCorrectPriceValue(array $existingPrice, array $price)
300302
}
301303

302304
/**
303-
* Retrieve SKU by product ID.
305+
* Generate lookup to retrieve SKU by product ID.
304306
*
305-
* @param int $id
306307
* @param array $skus
307-
* @return string|null
308+
* @return array
308309
*/
309-
private function retrieveSkuById($id, $skus)
310+
private function buildSkuByIdLookup($skus)
310311
{
312+
$lookup = [];
311313
foreach ($this->productIdLocator->retrieveProductIdsBySkus($skus) as $sku => $ids) {
312-
if (isset($ids[$id])) {
313-
return $sku;
314+
foreach (array_keys($ids) as $id) {
315+
$lookup[$id] = $sku;
314316
}
315317
}
316318

317-
return null;
319+
return $lookup;
318320
}
319321

320322
/**

app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1570,7 +1570,7 @@ protected function getEntityPkName(\Magento\Eav\Model\Entity\AbstractEntity $ent
15701570
}
15711571

15721572
/**
1573-
* Add requere tax percent flag for product collection
1573+
* Add require tax percent flag for product collection
15741574
*
15751575
* @return $this
15761576
*/

app/code/Magento/Catalog/Plugin/Block/Topmenu.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ private function getCategoryAsArray($category, $currentCategory, $isParentActive
162162
'url' => $this->catalogCategory->getCategoryUrl($category),
163163
'has_active' => in_array((string)$category->getId(), explode('/', $currentCategory->getPath()), true),
164164
'is_active' => $category->getId() == $currentCategory->getId(),
165+
'is_category' => true,
165166
'is_parent_active' => $isParentActive
166167
];
167168
}

app/code/Magento/Catalog/Test/Unit/Model/CustomOptions/CustomOptionTest.php

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
use Magento\Catalog\Model\CustomOptions\CustomOption;
99
use Magento\Catalog\Model\Webapi\Product\Option\Type\File\Processor as FileProcessor;
10+
use Magento\Framework\Api\ExtensionAttributesFactory;
11+
use Magento\Catalog\Api\Data\CustomOptionExtensionInterface;
1012

1113
class CustomOptionTest extends \PHPUnit\Framework\TestCase
1214
{
@@ -15,6 +17,12 @@ class CustomOptionTest extends \PHPUnit\Framework\TestCase
1517
*/
1618
protected $model;
1719

20+
/** @var \Magento\Framework\Api\ExtensionAttributesFactory | \PHPUnit_Framework_MockObject_MockObject */
21+
private $extensionAttributesFactoryMock;
22+
23+
/** @var \Magento\Catalog\Api\Data\CustomOptionExtensionInterface | \PHPUnit_Framework_MockObject_MockObject */
24+
private $extensionMock;
25+
1826
/**
1927
* @var FileProcessor | \PHPUnit_Framework_MockObject_MockObject
2028
*/
@@ -30,7 +38,7 @@ protected function setUp()
3038
->disableOriginalConstructor()
3139
->getMock();
3240

33-
$extensionAttributesFactory = $this->getMockBuilder(\Magento\Framework\Api\ExtensionAttributesFactory::class)
41+
$this->extensionAttributesFactoryMock = $this->getMockBuilder(ExtensionAttributesFactory::class)
3442
->disableOriginalConstructor()
3543
->getMock();
3644

@@ -52,10 +60,17 @@ protected function setUp()
5260
->disableOriginalConstructor()
5361
->getMock();
5462

63+
$this->extensionMock = $this->getMockBuilder(\Magento\Catalog\Api\Data\CustomOptionExtensionInterface::class)
64+
->setMethods(['getFileInfo'])
65+
->getMockForAbstractClass();
66+
67+
$this->extensionAttributesFactoryMock->expects(self::any())
68+
->method('create')->willReturn($this->extensionMock);
69+
5570
$this->model = new CustomOption(
5671
$context,
5772
$registry,
58-
$extensionAttributesFactory,
73+
$this->extensionAttributesFactoryMock,
5974
$attributeValueFactory,
6075
$this->fileProcessor,
6176
$resource,
@@ -84,14 +99,10 @@ public function testGetOptionValue()
8499

85100
public function testGetOptionValueWithFileInfo()
86101
{
87-
$customOption = $this->getMockBuilder(\Magento\Catalog\Api\Data\CustomOptionExtensionInterface::class)
88-
->setMethods(['getFileInfo'])
89-
->getMockForAbstractClass();
90-
91102
$imageContent = $this->getMockBuilder(\Magento\Framework\Api\Data\ImageContentInterface::class)
92103
->getMockForAbstractClass();
93104

94-
$customOption->expects($this->once())
105+
$this->extensionMock->expects($this->once())
95106
->method('getFileInfo')
96107
->willReturn($imageContent);
97108

@@ -112,7 +123,6 @@ public function testGetOptionValueWithFileInfo()
112123
->with($imageContent)
113124
->willReturn($imageResult);
114125

115-
$this->model->setExtensionAttributes($customOption);
116126
$this->model->setData(\Magento\Catalog\Api\Data\CustomOptionInterface::OPTION_VALUE, 'file');
117127
$this->assertEquals($imageResult, $this->model->getOptionValue());
118128
}

0 commit comments

Comments
 (0)