Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AuthenticationPopupTest.php
Go to the documentation of this file.
1 <?php
7 
16 
17 class AuthenticationPopupTest extends \PHPUnit\Framework\TestCase
18 {
20  private $model;
21 
23  private $contextMock;
24 
26  private $storeManagerMock;
27 
29  private $scopeConfigMock;
30 
32  private $urlBuilderMock;
33 
35  private $serializerMock;
36 
37  protected function setUp()
38  {
39  $this->contextMock = $this->getMockBuilder(Context::class)
40  ->disableOriginalConstructor()
41  ->getMock();
42 
43  $this->storeManagerMock = $this->getMockBuilder(StoreManagerInterface::class)
44  ->getMock();
45  $this->scopeConfigMock = $this->getMockBuilder(ScopeConfigInterface::class)
46  ->getMock();
47  $this->urlBuilderMock = $this->getMockBuilder(UrlInterface::class)
48  ->getMock();
49 
50  $this->contextMock->expects($this->once())
51  ->method('getStoreManager')
52  ->willReturn($this->storeManagerMock);
53  $this->contextMock->expects($this->once())
54  ->method('getScopeConfig')
55  ->willReturn($this->scopeConfigMock);
56  $this->contextMock->expects($this->once())
57  ->method('getUrlBuilder')
58  ->willReturn($this->urlBuilderMock);
59  $escaperMock = $this->getMockBuilder(\Magento\Framework\Escaper::class)
60  ->disableOriginalConstructor()
61  ->getMock();
62  $escaperMock->method('escapeHtml')
63  ->willReturnCallback(
64  function ($string) {
65  return 'escapeHtml' . $string;
66  }
67  );
68  $escaperMock->method('escapeUrl')
69  ->willReturnCallback(
70  function ($string) {
71  return 'escapeUrl' . $string;
72  }
73  );
74  $this->contextMock->expects($this->once())
75  ->method('getEscaper')
76  ->willReturn($escaperMock);
77 
78  $this->serializerMock = $this->getMockBuilder(\Magento\Framework\Serialize\Serializer\Json::class)
79  ->getMock();
80 
81  $this->model = new AuthenticationPopup(
82  $this->contextMock,
83  [],
84  $this->serializerMock
85  );
86  }
87 
98  public function testGetConfig($isAutocomplete, $baseUrl, $registerUrl, $forgotUrl, array $result)
99  {
100  $this->scopeConfigMock->expects($this->any())
101  ->method('getValue')
103  ->willReturn($isAutocomplete);
104 
106  $storeMock = $this->getMockBuilder(StoreInterface::class)
107  ->setMethods(['getBaseUrl'])
108  ->getMockForAbstractClass();
109 
110  $this->storeManagerMock->expects($this->any())
111  ->method('getStore')
112  ->with(null)
113  ->willReturn($storeMock);
114 
115  $storeMock->expects($this->any())
116  ->method('getBaseUrl')
117  ->willReturn($baseUrl);
118 
119  $this->urlBuilderMock->expects($this->any())
120  ->method('getUrl')
121  ->willReturnMap(
122  [
123  ['customer/account/create', [], $registerUrl],
124  ['customer/account/forgotpassword', [], $forgotUrl],
125  ]
126  );
127 
128  $this->assertEquals($result, $this->model->getConfig());
129  }
130 
134  public function dataProviderGetConfig()
135  {
136  return [
137  [
138  0,
139  'base',
140  'reg',
141  'forgot',
142  [
143  'autocomplete' => 'escapeHtmloff',
144  'customerRegisterUrl' => 'escapeUrlreg',
145  'customerForgotPasswordUrl' => 'escapeUrlforgot',
146  'baseUrl' => 'escapeUrlbase',
147  ],
148  ],
149  [
150  1,
151  '',
152  'reg',
153  'forgot',
154  [
155  'autocomplete' => 'escapeHtmlon',
156  'customerRegisterUrl' => 'escapeUrlreg',
157  'customerForgotPasswordUrl' => 'escapeUrlforgot',
158  'baseUrl' => 'escapeUrl',
159  ],
160  ],
161  [
162  '',
163  'base',
164  '',
165  'forgot',
166  [
167  'autocomplete' => 'escapeHtmloff',
168  'customerRegisterUrl' => 'escapeUrl',
169  'customerForgotPasswordUrl' => 'escapeUrlforgot',
170  'baseUrl' => 'escapeUrlbase',
171  ],
172  ],
173  [
174  true,
175  'base',
176  'reg',
177  '',
178  [
179  'autocomplete' => 'escapeHtmlon',
180  'customerRegisterUrl' => 'escapeUrlreg',
181  'customerForgotPasswordUrl' => 'escapeUrl',
182  'baseUrl' => 'escapeUrlbase',
183  ],
184  ],
185  ];
186  }
187 
198  public function testGetSerializedConfig($isAutocomplete, $baseUrl, $registerUrl, $forgotUrl, array $result)
199  {
200  $this->scopeConfigMock->expects($this->any())
201  ->method('getValue')
203  ->willReturn($isAutocomplete);
204 
206  $storeMock = $this->getMockBuilder(StoreInterface::class)
207  ->setMethods(['getBaseUrl'])
208  ->getMockForAbstractClass();
209 
210  $this->storeManagerMock->expects($this->any())
211  ->method('getStore')
212  ->with(null)
213  ->willReturn($storeMock);
214 
215  $storeMock->expects($this->any())
216  ->method('getBaseUrl')
217  ->willReturn($baseUrl);
218 
219  $this->urlBuilderMock->expects($this->any())
220  ->method('getUrl')
221  ->willReturnMap(
222  [
223  ['customer/account/create', [], $registerUrl],
224  ['customer/account/forgotpassword', [], $forgotUrl],
225  ]
226  );
227  $this->serializerMock->expects($this->any())->method('serialize')
228  ->willReturn(
229  json_encode($this->model->getConfig())
230  );
231 
232  $this->assertEquals(json_encode($result), $this->model->getSerializedConfig());
233  }
234 }
const XML_PATH_ENABLE_AUTOCOMPLETE
Definition: Form.php:19