Skip to content

Commit a33da51

Browse files
author
okarpenko
committed
MAGETWO-37818: Customer invalid email message is not displayed
1 parent d10c10e commit a33da51

File tree

3 files changed

+215
-3
lines changed

3 files changed

+215
-3
lines changed
Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
// @codingStandardsIgnoreFile
7+
8+
namespace Magento\Customer\Test\Unit\Controller\Adminhtml\Index;
9+
10+
class ValidateTest extends \PHPUnit_Framework_TestCase
11+
{
12+
/**
13+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\RequestInterface
14+
*/
15+
protected $request;
16+
17+
/**
18+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\ResponseInterface
19+
*/
20+
protected $response;
21+
22+
/**
23+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Customer\Api\Data\CustomerInterface
24+
*/
25+
protected $customer;
26+
27+
/**
28+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Customer\Api\Data\CustomerInterfaceFactory
29+
*/
30+
protected $customerDataFactory;
31+
32+
/**
33+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Customer\Model\Metadata\FormFactory
34+
*/
35+
protected $formFactory;
36+
37+
/**
38+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Customer\Model\Metadata\Form
39+
*/
40+
protected $form;
41+
42+
/**
43+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Api\ExtensibleDataObjectConverter
44+
*/
45+
protected $extensibleDataObjectConverter;
46+
47+
/**
48+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Api\DataObjectHelper
49+
*/
50+
protected $dataObjectHelper;
51+
52+
/**
53+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Customer\Api\AccountManagementInterface
54+
*/
55+
protected $customerAccountManagement;
56+
57+
/** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Controller\Result\JsonFactory */
58+
protected $resultJsonFactory;
59+
60+
/** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Controller\Result\Json */
61+
protected $resultJson;
62+
63+
public function testExecute()
64+
{
65+
$this->customer = $this->getMockForAbstractClass(
66+
'Magento\Customer\Api\Data\CustomerInterface',
67+
[],
68+
'',
69+
false,
70+
true,
71+
true
72+
);
73+
$this->customer->expects($this->once())
74+
->method('getWebsiteId')
75+
->willReturn(2);
76+
77+
$this->customerDataFactory = $this->getMock(
78+
'Magento\Customer\Api\Data\CustomerInterfaceFactory',
79+
['create'],
80+
[],
81+
'',
82+
false
83+
);
84+
$this->customerDataFactory
85+
->expects($this->once())
86+
->method('create')
87+
->willReturn($this->customer);
88+
89+
$this->request = $this->getMockForAbstractClass(
90+
'Magento\Framework\App\RequestInterface',
91+
[],
92+
'',
93+
false,
94+
true,
95+
true,
96+
['getPost']
97+
);
98+
$this->request->expects($this->once())
99+
->method('getPost')
100+
->willReturn([
101+
'_template_' => null,
102+
'address_index' => null
103+
]);
104+
$this->response = $this->getMockForAbstractClass(
105+
'Magento\Framework\App\ResponseInterface',
106+
[],
107+
'',
108+
false
109+
);
110+
$this->form = $this->getMock(
111+
'Magento\Customer\Model\Metadata\Form',
112+
[],
113+
[],
114+
'',
115+
false
116+
);
117+
$this->form->expects($this->once())
118+
->method('setInvisibleIgnored');
119+
$this->form->expects($this->atLeastOnce())
120+
->method('extractData')
121+
->willReturn([]);
122+
123+
$error = $this->getMock('Magento\Framework\Message\Error', [], [], '', false);
124+
$this->form->expects($this->once())
125+
->method('validateData')
126+
->willReturn([$error]);
127+
128+
$this->formFactory = $this->getMock('Magento\Customer\Model\Metadata\FormFactory', ['create'], [], '', false);
129+
$this->formFactory->expects($this->atLeastOnce())
130+
->method('create')
131+
->willReturn($this->form);
132+
133+
$this->extensibleDataObjectConverter = $this->getMock(
134+
'Magento\Framework\Api\ExtensibleDataObjectConverter',
135+
[],
136+
[],
137+
'',
138+
false
139+
);
140+
$this->extensibleDataObjectConverter->expects($this->once())
141+
->method('toFlatArray')
142+
->willReturn([]);
143+
144+
$this->dataObjectHelper = $this->getMock('Magento\Framework\Api\DataObjectHelper', [], [], '', false);
145+
$this->dataObjectHelper
146+
->expects($this->once())
147+
->method('populateWithArray');
148+
149+
$this->customerAccountManagement = $this->getMockForAbstractClass(
150+
'Magento\Customer\Api\AccountManagementInterface',
151+
[],
152+
'',
153+
false,
154+
true,
155+
true
156+
);
157+
158+
$validationResult = $this->getMockForAbstractClass(
159+
'Magento\Customer\Api\Data\ValidationResultsInterface',
160+
[],
161+
'',
162+
false,
163+
true,
164+
true
165+
);
166+
$validationResult->expects($this->once())
167+
->method('isValid')
168+
->willReturn(false);
169+
$validationResult->expects($this->once())
170+
->method('getMessages')
171+
->willReturn(['Error message']);
172+
173+
$this->customerAccountManagement->expects($this->once())
174+
->method('validate')
175+
->willReturn($validationResult);
176+
177+
$this->resultJson = $this->getMock('Magento\Framework\Controller\Result\Json', [], [], '', false);
178+
$this->resultJson->expects($this->once())
179+
->method('setData');
180+
$this->resultJsonFactory = $this->getMock(
181+
'Magento\Framework\Controller\Result\JsonFactory',
182+
['create'],
183+
[],
184+
'',
185+
false
186+
);
187+
$this->resultJsonFactory
188+
->expects($this->once())
189+
->method('create')
190+
->willReturn($this->resultJson);
191+
192+
$this->getController()->execute();
193+
}
194+
195+
public function getController()
196+
{
197+
$objectHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
198+
return $objectHelper->getObject(
199+
'Magento\Customer\Controller\Adminhtml\Index\Validate',
200+
[
201+
'request' => $this->request,
202+
'response' => $this->response,
203+
'customerDataFactory' => $this->customerDataFactory,
204+
'formFactory' => $this->formFactory,
205+
'extensibleDataObjectConverter' => $this->extensibleDataObjectConverter,
206+
'customerAccountManagement' => $this->customerAccountManagement,
207+
'resultJsonFactory' => $this->resultJsonFactory,
208+
'dataObjectHelper' => $this->dataObjectHelper,
209+
]
210+
);
211+
}
212+
}

app/code/Magento/Ui/view/base/web/js/form/client.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ define([
3535
$('body').notification('add', {
3636
error: resp.error,
3737
message: message,
38-
messageSelector: '#anchor-content'
38+
messageContainer: '#anchor-content'
3939
});
4040
});
4141
}

lib/web/mage/backend/notification.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ define([
5252
var message = mageTemplate(template, {
5353
data: data
5454
});
55-
var messageSelector = data.messageSelector || '.messages';
56-
$(messageSelector).prepend(message);
55+
var messageContainer = data.messageContainer || '.messages';
56+
$(messageContainer).prepend(message);
5757
return this;
5858
},
5959

0 commit comments

Comments
 (0)