34 private $appEmulation;
39 private $storeManager;
69 private $templateFactory;
74 private $filterManager;
89 private $filterFactory;
93 $this->context = $this->getMockBuilder(\
Magento\Framework\Model\Context::class)
94 ->disableOriginalConstructor()
97 $this->design = $this->getMockBuilder(\
Magento\Framework\View\DesignInterface::class)
98 ->disableOriginalConstructor()
101 $this->registry = $this->getMockBuilder(\
Magento\Framework\Registry::class)
102 ->disableOriginalConstructor()
105 $this->appEmulation = $this->getMockBuilder(\
Magento\Store\Model\
App\Emulation::class)
106 ->disableOriginalConstructor()
109 $this->storeManager = $this->getMockBuilder(\
Magento\Store\Model\StoreManagerInterface::class)
110 ->disableOriginalConstructor()
113 $this->store = $this->getMockBuilder(\
Magento\Store\Model\Store::class)
114 ->setMethods([
'getFrontendName',
'getId'])
115 ->disableOriginalConstructor()
118 $this->store->expects($this->any())
119 ->method(
'getFrontendName')
120 ->will($this->returnValue(
'frontendName'));
122 $this->store->expects($this->any())
123 ->method(
'getFrontendName')
124 ->will($this->returnValue(
'storeId'));
126 $this->storeManager->expects($this->any())
128 ->will($this->returnValue($this->store));
130 $this->assetRepo = $this->getMockBuilder(\
Magento\Framework\View\Asset\Repository::class)
131 ->disableOriginalConstructor()
134 $this->filesystem = $this->getMockBuilder(\
Magento\Framework\Filesystem::class)
135 ->disableOriginalConstructor()
138 $this->scopeConfig = $this->getMockBuilder(\
Magento\Framework\
App\Config\ScopeConfigInterface::class)
139 ->disableOriginalConstructor()
142 $this->emailConfig = $this->getMockBuilder(\
Magento\Email\Model\Template\Config::class)
143 ->disableOriginalConstructor()
146 $this->templateFactory = $this->getMockBuilder(\
Magento\Email\Model\TemplateFactory::class)
147 ->disableOriginalConstructor()
150 $this->filterManager = $this->getMockBuilder(\
Magento\Framework\Filter\FilterManager::class)
151 ->disableOriginalConstructor()
154 $this->urlModel = $this->getMockBuilder(\
Magento\Framework\Url::class)
155 ->disableOriginalConstructor()
158 $this->request = $this->getMockBuilder(\
Magento\Framework\
App\RequestInterface::class)
159 ->disableOriginalConstructor()
162 $this->filterFactory = $this->getMockBuilder(\
Magento\Newsletter\Model\Template\FilterFactory::class)
163 ->disableOriginalConstructor()
175 return $this->getMockBuilder(\
Magento\Newsletter\Model\Template::class)
176 ->setMethods(array_merge($mockedMethods, [
'__wakeup',
'__sleep',
'_init']))
177 ->setConstructorArgs(
188 $this->templateFactory,
189 $this->filterManager,
192 $this->filterFactory,
207 $templateSubject =
'templateSubject';
208 $model->setTemplateSubject($templateSubject);
210 $filterTemplate = $this->getMockBuilder(\
Magento\Framework\Filter\Template::class)
211 ->setMethods([
'setVariables',
'setStoreId',
'filter'])
212 ->disableOriginalConstructor()
214 $model->expects($this->once())
215 ->method(
'getTemplateFilter')
216 ->will($this->returnValue($filterTemplate));
218 $expectedResult =
'expected';
219 $filterTemplate->expects($this->once())
221 ->with($templateSubject)
222 ->will($this->returnValue($expectedResult));
224 $variables = [
'key' =>
'value'];
225 $filterTemplate->expects($this->once())
226 ->method(
'setVariables')
227 ->with(array_merge($variables, [
'this' =>
$model]))
228 ->will($this->returnValue($filterTemplate));
230 $this->assertEquals($expectedResult,
$model->getProcessedTemplateSubject($variables));
248 $filterTemplate = $this->getMockBuilder(\
Magento\Newsletter\Model\Template\Filter::class)
250 'setUseSessionInUrl',
251 'setPlainTemplateMode',
252 'setIsChildTemplate',
260 ->disableOriginalConstructor()
263 $filterTemplate->expects($this->once())
264 ->method(
'setUseSessionInUrl')
266 ->will($this->returnSelf());
267 $filterTemplate->expects($this->once())
268 ->method(
'setPlainTemplateMode')
270 ->will($this->returnSelf());
271 $filterTemplate->expects($this->once())
272 ->method(
'setIsChildTemplate')
273 ->will($this->returnSelf());
274 $filterTemplate->expects($this->once())
275 ->method(
'setDesignParams')
276 ->will($this->returnSelf());
277 $filterTemplate->expects($this->any())
278 ->method(
'setStoreId')
279 ->will($this->returnSelf());
280 $filterTemplate->expects($this->any())
281 ->method(
'getStoreId')
282 ->will($this->returnValue(
$storeId));
290 ->disableOriginalConstructor()
293 ->method(
'getStoreId')
294 ->will($this->returnValue(
'3'));
298 $expectedVariables[
'store'] = $this->store;
306 $filterTemplate->expects($this->any())
307 ->method(
'setVariables')
308 ->with(array_merge([
'this' =>
$model], $expectedVariables));
309 $model->setTemplateFilter($filterTemplate);
314 'theme' =>
'themeId',
315 'locale' =>
'localeId',
317 $model->expects($this->any())
318 ->method(
'getDesignParams')
319 ->will($this->returnValue($designParams));
321 $model->expects($this->atLeastOnce())
325 $preparedTemplateText = $expectedResult;
326 $model->expects($this->once())
327 ->method(
'getTemplateText')
328 ->will($this->returnValue($preparedTemplateText));
330 $filterTemplate->expects($this->once())
332 ->with($preparedTemplateText)
333 ->will($this->returnValue($expectedResult));
335 $this->assertEquals($expectedResult,
$model->getProcessedTemplate($variables));
348 'expectedVariables' => [
350 'logo_alt' =>
'frontendName',
352 'logo_width' =>
null,
353 'logo_height' =>
null,
354 'store_phone' =>
null,
355 'store_hours' =>
null,
356 'store_email' =>
null,
358 'expectedResult' =>
'expected result',
360 'logo variables set' => [
362 'logo_url' =>
'http://example.com/logo',
363 'logo_alt' =>
'Logo Alt',
367 'expectedVariables' => [
368 'logo_url' =>
'http://example.com/logo',
369 'logo_alt' =>
'Logo Alt',
371 'logo_width' =>
null,
372 'logo_height' =>
null,
373 'store_phone' =>
null,
374 'store_hours' =>
null,
375 'store_email' =>
null,
376 'template_styles' =>
null,
378 'expectedResult' =>
'expected result',
391 $model = $this->
getModelMock([
'getTemplateSenderName',
'getTemplateSenderEmail',
'getTemplateSubject']);
392 $model->expects($this->any())
393 ->method(
'getTemplateSenderName')
394 ->will($this->returnValue($senderName));
395 $model->expects($this->any())
396 ->method(
'getTemplateSenderEmail')
397 ->will($this->returnValue($senderEmail));
398 $model->expects($this->any())
399 ->method(
'getTemplateSubject')
400 ->will($this->returnValue($templateSubject));
401 $this->assertEquals($expectedValue,
$model->isValidForSend());
410 'should be valid' => [
411 'senderName' =>
'sender name',
413 'templateSubject' =>
'template subject',
414 'expectedValue' => true
416 'no sender name so not valid' => [
419 'templateSubject' =>
'template subject',
420 'expectedValue' =>
false 422 'no sender email so not valid' => [
423 'senderName' =>
'sender name',
425 'templateSubject' =>
'template subject',
426 'expectedValue' =>
false 428 'no subject so not valid' => [
429 'senderName' =>
'sender name',
431 'templateSubject' =>
'',
432 'expectedValue' =>
false
getProcessedTemplateDataProvider()
testIsValidForSend($senderName, $senderEmail, $templateSubject, $expectedValue)
testGetProcessedTemplateSubject()
getModelMock(array $mockedMethods=[])
isValidForSendDataProvider()
testGetProcessedTemplate($variables, $templateType, $storeId, $expectedVariables, $expectedResult)