Skip to content

Commit b10f58c

Browse files
author
Mike Weis
committed
Merge branch 'develop' into FearlessKiwis-MAGETWO-55229-Problem-while-upgrading-210
2 parents d11d3a1 + feeadbe commit b10f58c

File tree

118 files changed

+6115
-527
lines changed

Some content is hidden

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

118 files changed

+6115
-527
lines changed
Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,288 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Backup\Test\Unit\Controller\Adminhtml\Index;
7+
8+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
9+
10+
/**
11+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
12+
* @SuppressWarnings(PHPMD.TooManyFields)
13+
*/
14+
class RollbackTest extends \PHPUnit_Framework_TestCase
15+
{
16+
/**
17+
* @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
18+
*/
19+
private $objectManager;
20+
21+
/**
22+
* @var \Magento\Framework\ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
23+
*/
24+
private $objectManagerMock;
25+
26+
/**
27+
* @var \Magento\Backend\App\Action\Context
28+
*/
29+
private $context;
30+
31+
/**
32+
* @var \Magento\Backup\Controller\Adminhtml\Index\Rollback
33+
*/
34+
private $rollbackController;
35+
36+
/**
37+
* @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject
38+
*/
39+
private $requestMock;
40+
41+
/**
42+
* @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject
43+
*/
44+
private $responseMock;
45+
46+
/**
47+
* @var \Magento\Backup\Model\BackupFactory|\PHPUnit_Framework_MockObject_MockObject
48+
*/
49+
private $backupModelFactoryMock;
50+
51+
/**
52+
* @var \Magento\Backup\Model\Backup|\PHPUnit_Framework_MockObject_MockObject
53+
*/
54+
private $backupModelMock;
55+
56+
/**
57+
* @var \Magento\Backup\Helper\Data|\PHPUnit_Framework_MockObject_MockObject
58+
*/
59+
private $dataHelperMock;
60+
61+
/**
62+
* @var \Magento\Framework\App\Response\Http\FileFactory|\PHPUnit_Framework_MockObject_MockObject
63+
*/
64+
private $fileFactoryMock;
65+
66+
/**
67+
* @var \Magento\Backend\Model\View\Result\RedirectFactory|\PHPUnit_Framework_MockObject_MockObject
68+
*/
69+
private $resultRedirectFactoryMock;
70+
71+
/**
72+
* @var \Magento\Backend\Model\View\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
73+
*/
74+
private $resultRedirectMock;
75+
76+
/**
77+
* @var \Magento\Backend\Model\View\Result\Forward|\PHPUnit_Framework_MockObject_MockObject
78+
*/
79+
private $resultForwardMock;
80+
81+
/**
82+
* @var \Magento\Framework\Backup\Factory|\PHPUnit_Framework_MockObject_MockObject
83+
*/
84+
private $backupFactoryMock;
85+
86+
/**
87+
* @var \Magento\Framework\Backup\BackupInterface|\PHPUnit_Framework_MockObject_MockObject
88+
*/
89+
private $backupManagerMock;
90+
91+
/**
92+
* @var \Magento\Backup\Model\ResourceModel\Db|\PHPUnit_Framework_MockObject_MockObject
93+
*/
94+
private $backupResourceModelMock;
95+
96+
protected function setUp()
97+
{
98+
$this->objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class)
99+
->getMock();
100+
$this->requestMock = $this->getMockBuilder(\Magento\Framework\App\RequestInterface::class)
101+
->setMethods(['initForward', 'setDispatched', 'isAjax'])
102+
->getMockForAbstractClass();
103+
$this->responseMock = $this->getMockBuilder(\Magento\Framework\App\ResponseInterface::class)
104+
->setMethods(['setRedirect', 'representJson'])
105+
->getMockForAbstractClass();
106+
$this->backupModelFactoryMock = $this->getMockBuilder(\Magento\Backup\Model\BackupFactory::class)
107+
->disableOriginalConstructor()
108+
->setMethods(['create'])
109+
->getMock();
110+
$this->backupModelMock = $this->getMockBuilder(\Magento\Backup\Model\Backup::class)
111+
->disableOriginalConstructor()
112+
->setMethods(['getTime', 'exists', 'getSize', 'output', 'validateUserPassword'])
113+
->getMock();
114+
$this->backupResourceModelMock = $this->getMockBuilder(\Magento\Backup\Model\ResourceModel\Db::class)
115+
->disableOriginalConstructor()
116+
->getMock();
117+
$this->dataHelperMock = $this->getMockBuilder(\Magento\Backup\Helper\Data::class)
118+
->disableOriginalConstructor()
119+
->setMethods(['isRollbackAllowed', 'getBackupsDir', 'invalidateCache'])
120+
->getMock();
121+
$this->fileFactoryMock = $this->getMockBuilder(\Magento\Framework\App\Response\Http\FileFactory::class)
122+
->disableOriginalConstructor()
123+
->getMock();
124+
$this->resultRedirectFactoryMock =
125+
$this->getMockBuilder(\Magento\Backend\Model\View\Result\RedirectFactory::class)
126+
->disableOriginalConstructor()
127+
->setMethods(['create'])
128+
->getMock();
129+
$this->resultRedirectMock = $this->getMockBuilder(\Magento\Backend\Model\View\Result\Redirect::class)
130+
->disableOriginalConstructor()
131+
->getMock();
132+
$this->resultForwardMock = $this->getMockBuilder(\Magento\Backend\Model\View\Result\Forward::class)
133+
->disableOriginalConstructor()
134+
->getMock();
135+
$this->backupFactoryMock = $this->getMockBuilder(\Magento\Framework\Backup\Factory::class)
136+
->disableOriginalConstructor()
137+
->setMethods(['create'])
138+
->getMock();
139+
$this->backupManagerMock = $this->getMockBuilder(\Magento\Framework\Backup\BackupInterface::class)
140+
->setMethods(['setName'])
141+
->getMockForAbstractClass();
142+
$this->objectManager = new ObjectManager($this);
143+
$this->context = $this->objectManager->getObject(
144+
\Magento\Backend\App\Action\Context::class,
145+
[
146+
'objectManager' => $this->objectManagerMock,
147+
'request' => $this->requestMock,
148+
'response' => $this->responseMock,
149+
'resultRedirectFactory' => $this->resultRedirectFactoryMock
150+
]
151+
);
152+
$this->rollbackController = $this->objectManager->getObject(
153+
\Magento\Backup\Controller\Adminhtml\Index\Rollback::class,
154+
[
155+
'context' => $this->context,
156+
'backupFactory' => $this->backupFactoryMock,
157+
'backupModelFactory' => $this->backupModelFactoryMock,
158+
'fileFactory' => $this->fileFactoryMock
159+
]
160+
);
161+
}
162+
163+
public function testExecuteRollbackDisabled()
164+
{
165+
$rollbackAllowed = false;
166+
167+
$this->dataHelperMock->expects($this->once())
168+
->method('isRollbackAllowed')
169+
->willReturn($rollbackAllowed);
170+
$this->objectManagerMock->expects($this->once())
171+
->method('get')
172+
->with(\Magento\Backup\Helper\Data::class)
173+
->willReturn($this->dataHelperMock);
174+
175+
$this->assertSame($this->responseMock, $this->rollbackController->execute());
176+
}
177+
178+
public function testExecuteBackupNotFound()
179+
{
180+
$rollbackAllowed = true;
181+
$isAjax = true;
182+
$time = 0;
183+
$type = 'db';
184+
$exists = false;
185+
186+
$this->dataHelperMock->expects($this->once())
187+
->method('isRollbackAllowed')
188+
->willReturn($rollbackAllowed);
189+
$this->objectManagerMock->expects($this->atLeastOnce())
190+
->method('get')
191+
->with(\Magento\Backup\Helper\Data::class)
192+
->willReturn($this->dataHelperMock);
193+
$this->requestMock->expects($this->once())
194+
->method('isAjax')
195+
->willReturn($isAjax);
196+
$this->backupModelMock->expects($this->atLeastOnce())
197+
->method('getTime')
198+
->willReturn($time);
199+
$this->backupModelMock->expects($this->any())
200+
->method('exists')
201+
->willReturn($exists);
202+
$this->requestMock->expects($this->any())
203+
->method('getParam')
204+
->willReturnMap(
205+
[
206+
['time', null, $time],
207+
['type', null, $type]
208+
]
209+
);
210+
$this->backupModelFactoryMock->expects($this->once())
211+
->method('create')
212+
->with($time, $type)
213+
->willReturn($this->backupModelMock);
214+
215+
$this->assertSame($this->responseMock, $this->rollbackController->execute());
216+
}
217+
218+
public function testExecute()
219+
{
220+
$rollbackAllowed = true;
221+
$isAjax = true;
222+
$time = 1;
223+
$type = 'db';
224+
$exists = true;
225+
$passwordValid = true;
226+
227+
$this->dataHelperMock->expects($this->once())
228+
->method('isRollbackAllowed')
229+
->willReturn($rollbackAllowed);
230+
$this->objectManagerMock->expects($this->any())
231+
->method('get')
232+
->with(\Magento\Backup\Helper\Data::class)
233+
->willReturn($this->dataHelperMock);
234+
$this->requestMock->expects($this->once())
235+
->method('isAjax')
236+
->willReturn($isAjax);
237+
$this->backupModelMock->expects($this->atLeastOnce())
238+
->method('getTime')
239+
->willReturn($time);
240+
$this->backupModelMock->expects($this->any())
241+
->method('exists')
242+
->willReturn($exists);
243+
$this->requestMock->expects($this->any())
244+
->method('getParam')
245+
->willReturnMap(
246+
[
247+
['time', null, $time],
248+
['type', null, $type]
249+
]
250+
);
251+
$this->backupModelFactoryMock->expects($this->once())
252+
->method('create')
253+
->with($time, $type)
254+
->willReturn($this->backupModelMock);
255+
$this->backupManagerMock->expects($this->once())
256+
->method('setBackupExtension')
257+
->willReturn($this->backupManagerMock);
258+
$this->backupManagerMock->expects($this->once())
259+
->method('setTime')
260+
->willReturn($this->backupManagerMock);
261+
$this->backupManagerMock->expects($this->once())
262+
->method('setBackupsDir')
263+
->willReturn($this->backupManagerMock);
264+
$this->backupManagerMock->expects($this->once())
265+
->method('setName')
266+
->willReturn($this->backupManagerMock);
267+
$this->backupManagerMock->expects($this->once())
268+
->method('setResourceModel')
269+
->willReturn($this->backupManagerMock);
270+
$this->backupFactoryMock->expects($this->once())
271+
->method('create')
272+
->with($type)
273+
->willReturn($this->backupManagerMock);
274+
$this->objectManagerMock->expects($this->at(2))
275+
->method('create')
276+
->with(\Magento\Backup\Model\ResourceModel\Db::class, [])
277+
->willReturn($this->backupResourceModelMock);
278+
$this->objectManagerMock->expects($this->at(3))
279+
->method('create')
280+
->with(\Magento\Backup\Model\Backup::class, [])
281+
->willReturn($this->backupModelMock);
282+
$this->backupModelMock->expects($this->once())
283+
->method('validateUserPassword')
284+
->willReturn($passwordValid);
285+
286+
$this->rollbackController->execute();
287+
}
288+
}

app/code/Magento/CatalogImportExport/Model/Import/Product/Validator/Quantity.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
*/
66
namespace Magento\CatalogImportExport\Model\Import\Product\Validator;
77

8-
use Magento\CatalogImportExport\Model\Import\Product\Validator\AbstractImportValidator;
98
use Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface;
109

10+
/**
11+
* Class Quantity
12+
*/
1113
class Quantity extends AbstractImportValidator implements RowValidatorInterface
1214
{
1315
/**
@@ -24,7 +26,7 @@ public function init($context)
2426
public function isValid($value)
2527
{
2628
$this->_clearMessages();
27-
if (!empty($value['qty']) && (!is_numeric($value['qty']) || $value['qty'] < 0)) {
29+
if (!empty($value['qty']) && !is_numeric($value['qty'])) {
2830
$this->_addMessages(
2931
[
3032
sprintf(
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\CatalogImportExport\Test\Unit\Model\Import\Product\Validator;
7+
8+
use Magento\CatalogImportExport\Model\Import\Product;
9+
use Magento\CatalogImportExport\Model\Import\Product\Validator\Quantity;
10+
11+
/**
12+
* Class QuantityTest
13+
*/
14+
class QuantityTest extends \PHPUnit_Framework_TestCase
15+
{
16+
/**
17+
* @var Quantity
18+
*/
19+
private $quantity;
20+
21+
protected function setUp()
22+
{
23+
$this->quantity = new Quantity();
24+
25+
$contextStub = $this->getMockBuilder(Product::class)
26+
->disableOriginalConstructor()
27+
->getMock();
28+
$contextStub->method('retrieveMessageTemplate')->willReturn(null);
29+
$this->quantity->init($contextStub);
30+
}
31+
32+
/**
33+
* @param bool $expectedResult
34+
* @param array $value
35+
* @dataProvider isValidDataProvider
36+
*/
37+
public function testIsValid($expectedResult, $value)
38+
{
39+
$result = $this->quantity->isValid($value);
40+
$this->assertEquals($expectedResult, $result);
41+
}
42+
43+
/**
44+
* @return array
45+
*/
46+
public function isValidDataProvider()
47+
{
48+
return [
49+
[true, ['qty' => 0]],
50+
[true, ['qty' => 1]],
51+
[true, ['qty' => 5]],
52+
[true, ['qty' => -1]],
53+
[true, ['qty' => -10]],
54+
[true, ['qty' => '']],
55+
[false, ['qty' => 'abc']],
56+
[false, ['qty' => true]],
57+
];
58+
}
59+
}

app/code/Magento/Checkout/i18n/en_US.csv

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ Login,Login
121121
Close,Close
122122
item,item
123123
items,items
124-
"Go to Checkout","Go to Checkout"
125124
"Recently added item(s)","Recently added item(s)"
126125
"View and edit cart","View and edit cart"
127126
"See Details","See Details"

0 commit comments

Comments
 (0)