public function testLoadDefault() { $this->_model->loadDefault('customer_create_account_email_template'); $this->assertNotEmpty($this->_model->getTemplateText()); $this->assertNotEmpty($this->_model->getTemplateSubject()); $this->assertNotEmpty($this->_model->getOrigTemplateVariables()); $this->assertInternalType('array', \Zend_Json::decode($this->_model->getOrigTemplateVariables())); $this->assertNotEmpty($this->_model->getTemplateStyles()); }
/** * @magentoAppIsolation enabled */ public function testLoadDefault() { Mage::app()->getConfig()->getOptions()->setLocaleDir(dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'locale'); $this->_model->loadDefault('customer_create_account_email_template'); $this->assertNotEmpty($this->_model->getTemplateText()); $this->assertNotEmpty($this->_model->getTemplateSubject()); $this->assertNotEmpty($this->_model->getOrigTemplateVariables()); $this->assertInternalType('array', Zend_Json::decode($this->_model->getOrigTemplateVariables())); $this->assertNotEmpty($this->_model->getTemplateStyles()); }
/** * Ensure that the template_styles variable contains styles from either <!--@styles @--> or the "Template Styles" * textarea in backend, depending on whether template was loaded from filesystem or DB. * * @magentoDataFixture Magento/Store/_files/core_fixturestore.php * @magentoComponentsDir Magento/Email/Model/_files/design * @magentoAppIsolation enabled * @magentoDbIsolation enabled * @dataProvider templateStylesVariableDataProvider * * @param string $area * @param string $expectedOutput * @param array $unexpectedOutputs * @param array $templateForDatabase */ public function testTemplateStylesVariable($area, $expectedOutput, $unexpectedOutputs, $templateForDatabase = []) { if (count($templateForDatabase)) { $this->mockModel(); $this->setUpThemeFallback($area); $template = $this->objectManager->create('Magento\\Email\\Model\\Template'); $template->setData($templateForDatabase); $template->save(); $templateId = $template->getId(); $this->model->load($templateId); } else { // <!--@styles @--> parsing only via the loadDefault method. Since email template files won't contain // @styles comments by default, it is necessary to mock an object to return testable contents $themeDirectory = $this->getMockBuilder('Magento\\Framework\\Filesystem\\Directory\\ReadInterface')->disableOriginalConstructor()->setMethods(['readFile'])->getMockForAbstractClass(); $themeDirectory->expects($this->once())->method('readFile')->will($this->returnValue('<!--@styles p { color: #111; } @--> {{var template_styles}}')); $filesystem = $this->getMockBuilder('\\Magento\\Framework\\Filesystem')->disableOriginalConstructor()->setMethods(['getDirectoryRead'])->getMock(); $filesystem->expects($this->once())->method('getDirectoryRead')->with(DirectoryList::ROOT)->will($this->returnValue($themeDirectory)); $this->mockModel($filesystem); $this->model->loadDefault('design_email_header_template'); } $processedTemplate = $this->model->getProcessedTemplate(); foreach ($unexpectedOutputs as $unexpectedOutput) { $this->assertNotContains($unexpectedOutput, $processedTemplate); } $this->assertContains($expectedOutput, $processedTemplate); }
/** * Ensure that the template_styles variable contains styles from either <!--@styles @--> or the "Template Styles" * textarea in backend, depending on whether template was loaded from filesystem or DB. * * @magentoDataFixture Magento/Store/_files/core_fixturestore.php * @magentoDataFixture Magento/Email/Model/_files/design/themes.php * @magentoAppIsolation enabled * @dataProvider templateStylesVariableDataProvider * * @param string $area * @param string $expectedOutput * @param array $unexpectedOutputs * @param array $templateForDatabase */ public function testTemplateStylesVariable($area, $expectedOutput, $unexpectedOutputs, $templateForDatabase = []) { $this->_mockModel($this->_getMockedFilesystem()); $this->setUpThemeFallback($area); if (count($templateForDatabase)) { $template = $this->_objectManager->create('Magento\\Email\\Model\\Template'); $template->setData($templateForDatabase); $template->save(); $templateId = $template->getId(); $this->_model->load($templateId); } else { // <!--@styles @--> parsing only happens when template is loaded from filesystem $this->_model->loadDefault('design_email_header_template'); } $processedTemplate = $this->_model->getProcessedTemplate(); foreach ($unexpectedOutputs as $unexpectedOutput) { $this->assertNotContains($unexpectedOutput, $processedTemplate); } $this->assertContains($expectedOutput, $processedTemplate); }
public function testGetPreparedTemplateText() { $this->_model->loadDefault('customer_create_account_email_template'); $this->assertContains('<body style', $this->_model->getPreparedTemplateText()); }