Skip to content

Commit 65f12ba

Browse files
Merge remote-tracking branch 'mainline/develop' into FearlessKiwis-MAGETWO-55301
2 parents 60576f6 + 8e21d5a commit 65f12ba

File tree

21 files changed

+287
-133
lines changed

21 files changed

+287
-133
lines changed

app/code/Magento/AdminNotification/Block/Grid/Renderer/Actions.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
* See COPYING.txt for license details.
77
*/
88

9-
// @codingStandardsIgnoreFile
10-
119
namespace Magento\AdminNotification\Block\Grid\Renderer;
1210

1311
class Actions extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
@@ -39,9 +37,8 @@ public function __construct(
3937
*/
4038
public function render(\Magento\Framework\DataObject $row)
4139
{
42-
$readDetailsHtml = $row->getUrl() ? '<a class="action-details" target="_blank" href="' . $row->getUrl() . '">' . __(
43-
'Read Details'
44-
) . '</a>' : '';
40+
$readDetailsHtml = $row->getUrl() ? '<a class="action-details" target="_blank" href="' . $row->getUrl() . '">' .
41+
__('Read Details') . '</a>' : '';
4542

4643
$markAsReadHtml = !$row->getIsRead() ? '<a class="action-mark" href="' . $this->getUrl(
4744
'*/*/markAsRead/',

app/code/Magento/AdminNotification/Block/ToolbarEntry.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
// @codingStandardsIgnoreFile
8-
97
namespace Magento\AdminNotification\Block;
108

119
/**

app/code/Magento/AdminNotification/Model/ResourceModel/Grid/Collection.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
// @codingStandardsIgnoreFile
8-
97
/**
108
* AdminNotification Inbox model
119
*
@@ -18,7 +16,7 @@ class Collection extends \Magento\AdminNotification\Model\ResourceModel\Inbox\Co
1816
/**
1917
* Add remove filter
2018
*
21-
* @return \Magento\AdminNotification\Model\ResourceModel\Grid\Collection|\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
19+
* @return Collection|\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
2220
*/
2321
protected function _initSelect()
2422
{

app/code/Magento/AdminNotification/Test/Unit/Block/ToolbarEntryTest.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
// @codingStandardsIgnoreFile
8-
97
/**
108
* Test class for \Magento\AdminNotification\Block\ToolbarEntry
119
*/
@@ -53,7 +51,8 @@ public function testGetLatestUnreadNotifications()
5351

5452
// 1. Create mocks
5553
$notificationList = $this->getMockBuilder(
56-
\Magento\AdminNotification\Model\ResourceModel\Inbox\Collection\Unread::class)
54+
\Magento\AdminNotification\Model\ResourceModel\Inbox\Collection\Unread::class
55+
)
5756
->disableOriginalConstructor()
5857
->getMock();
5958

app/code/Magento/Catalog/Model/Indexer/Product/Eav/AbstractAction.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,13 @@ protected function syncData($indexer, $destinationTable, $ids)
148148
* @param \Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\AbstractEav $indexer
149149
* @param array $ids
150150
*
151-
* @return $ids
151+
* @param bool $onlyParents
152+
* @return array $ids
152153
*/
153-
protected function processRelations($indexer, $ids)
154+
protected function processRelations($indexer, $ids, $onlyParents = false)
154155
{
155156
$parentIds = $indexer->getRelationsByChild($ids);
156-
$childIds = $indexer->getRelationsByParent($ids);
157+
$childIds = $onlyParents ? [] : $indexer->getRelationsByParent($ids);
157158
return array_unique(array_merge($ids, $childIds, $parentIds));
158159
}
159160
}

app/code/Magento/Catalog/Model/Indexer/Product/Eav/Action/Full.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public function execute($ids = null)
8383
$select->from(['e' => $entityMetadata->getEntityTable()], $entityMetadata->getIdentifierField());
8484
$entityIds = $this->batchProvider->getBatchIds($connection, $select, $batch);
8585
if (!empty($entityIds)) {
86-
$indexer->reindexEntities($this->processRelations($indexer, $entityIds));
86+
$indexer->reindexEntities($this->processRelations($indexer, $entityIds, true));
8787
$this->syncData($indexer, $mainTable);
8888
}
8989
}

app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/AbstractIndexer.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ public function getRelationsByChild($childIds)
196196
$childIds
197197
);
198198

199-
return $connection->fetchCol($select);
199+
return array_map('intval', (array) $connection->fetchCol($select));
200200
}
201201

202202
/**
@@ -228,7 +228,7 @@ public function getRelationsByParent($parentIds)
228228
$result = $connection->fetchCol($select);
229229
}
230230

231-
return $result;
231+
return array_map('intval', $result);
232232
}
233233

234234
/**

app/code/Magento/Catalog/Test/Unit/Model/Indexer/Product/Eav/Action/FullTest.php

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
*/
66
namespace Magento\Catalog\Test\Unit\Model\Indexer\Product\Eav\Action;
77

8+
/**
9+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
10+
*/
811
class FullTest extends \PHPUnit_Framework_TestCase
912
{
1013
public function testExecuteWithAdapterErrorThrowsException()
@@ -55,4 +58,103 @@ public function testExecuteWithAdapterErrorThrowsException()
5558

5659
$model->execute();
5760
}
61+
62+
public function testExecute()
63+
{
64+
$eavDecimalFactory = $this->getMock(
65+
\Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\DecimalFactory::class,
66+
['create'],
67+
[],
68+
'',
69+
false
70+
);
71+
$eavSourceFactory = $this->getMock(
72+
\Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\SourceFactory::class,
73+
['create'],
74+
[],
75+
'',
76+
false
77+
);
78+
79+
$ids = [1, 2, 3];
80+
$connectionMock = $this->getMockBuilder(\Magento\Framework\DB\Adapter\AdapterInterface::class)
81+
->getMockForAbstractClass();
82+
83+
$connectionMock->expects($this->atLeastOnce())->method('describeTable')->willReturn(['id' => []]);
84+
$eavSource = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\Source::class)
85+
->disableOriginalConstructor()
86+
->getMock();
87+
88+
$eavDecimal = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\Decimal::class)
89+
->disableOriginalConstructor()
90+
->getMock();
91+
92+
$eavSource->expects($this->once())->method('getRelationsByChild')->with($ids)->willReturn([]);
93+
$eavSource->expects($this->never())->method('getRelationsByParent')->with($ids)->willReturn([]);
94+
95+
$eavDecimal->expects($this->once())->method('getRelationsByChild')->with($ids)->willReturn([]);
96+
$eavDecimal->expects($this->never())->method('getRelationsByParent')->with($ids)->willReturn([]);
97+
98+
$eavSource->expects($this->atLeastOnce())->method('getConnection')->willReturn($connectionMock);
99+
$eavDecimal->expects($this->atLeastOnce())->method('getConnection')->willReturn($connectionMock);
100+
101+
$eavDecimal->expects($this->once())
102+
->method('reindexEntities')
103+
->with($ids);
104+
105+
$eavSource->expects($this->once())
106+
->method('reindexEntities')
107+
->with($ids);
108+
109+
$eavDecimalFactory->expects($this->once())
110+
->method('create')
111+
->will($this->returnValue($eavSource));
112+
113+
$eavSourceFactory->expects($this->once())
114+
->method('create')
115+
->will($this->returnValue($eavDecimal));
116+
117+
$metadataMock = $this->getMock(\Magento\Framework\EntityManager\MetadataPool::class, [], [], '', false);
118+
$entityMetadataMock = $this->getMockBuilder(\Magento\Framework\EntityManager\EntityMetadataInterface::class)
119+
->getMockForAbstractClass();
120+
121+
$metadataMock->expects($this->atLeastOnce())
122+
->method('getMetadata')
123+
->with(\Magento\Catalog\Api\Data\ProductInterface::class)
124+
->willReturn($entityMetadataMock);
125+
126+
$batchProviderMock = $this->getMock(\Magento\Framework\Indexer\BatchProviderInterface::class);
127+
$batchProviderMock->expects($this->atLeastOnce())
128+
->method('getBatches')
129+
->willReturn([['from' => 10, 'to' => 100]]);
130+
$batchProviderMock->expects($this->atLeastOnce())
131+
->method('getBatchIds')
132+
->willReturn($ids);
133+
134+
$batchManagementMock = $this->getMock(
135+
\Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\BatchSizeCalculator::class,
136+
[],
137+
[],
138+
'',
139+
false
140+
);
141+
$selectMock = $this->getMockBuilder(\Magento\Framework\DB\Select::class)
142+
->disableOriginalConstructor()
143+
->getMock();
144+
145+
$connectionMock->method('select')->willReturn($selectMock);
146+
$selectMock->expects($this->atLeastOnce())->method('distinct')->willReturnSelf();
147+
$selectMock->expects($this->atLeastOnce())->method('from')->willReturnSelf();
148+
149+
$model = new \Magento\Catalog\Model\Indexer\Product\Eav\Action\Full(
150+
$eavDecimalFactory,
151+
$eavSourceFactory,
152+
$metadataMock,
153+
$batchProviderMock,
154+
$batchManagementMock,
155+
[]
156+
);
157+
158+
$model->execute();
159+
}
58160
}

app/code/Magento/CheckoutAgreements/view/frontend/web/js/view/checkout-agreements.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,26 @@ define([
4545
agreementsModal.showModal();
4646
},
4747

48+
/**
49+
* build a unique id for the term checkbox
50+
*
51+
* @param {Object} context - the ko context
52+
* @param {Number} agreementId
53+
*/
54+
getCheckboxId: function (context, agreementId) {
55+
var paymentMethodName = '',
56+
paymentMethodRenderer = context.$parents[1];
57+
58+
// corresponding payment method fetched from parent context
59+
if (paymentMethodRenderer) {
60+
// item looks like this: {title: "Check / Money order", method: "checkmo"}
61+
paymentMethodName = paymentMethodRenderer.item ?
62+
paymentMethodRenderer.item.method : '';
63+
}
64+
65+
return 'agreement_' + paymentMethodName + '_' + agreementId;
66+
},
67+
4868
/**
4969
* Init modal window for rendered element
5070
*

app/code/Magento/CheckoutAgreements/view/frontend/web/template/checkout/checkout-agreements.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
<div class="checkout-agreement required">
1212
<input type="checkbox" class="required-entry"
1313
data-bind="attr: {
14-
'id': 'agreement_' + agreementId,
14+
'id': $parent.getCheckboxId($parentContext, agreementId),
1515
'name': 'agreement[' + agreementId + ']',
1616
'value': agreementId
1717
}"/>
18-
<label data-bind="attr: {'for': 'agreement_' + agreementId}">
18+
<label data-bind="attr: {'for': $parent.getCheckboxId($parentContext, agreementId)}">
1919
<button type="button"
2020
class="action action-show"
2121
data-bind="click: function(data, event) { return $parent.showContent(data, event) }"

0 commit comments

Comments
 (0)