Ejemplo n.º 1
0
 public function testToOptionArray()
 {
     $collection = $this->getMock('Magento\\Email\\Model\\Resource\\Template\\Collection', [], [], '', false);
     $collection->expects($this->once())->method('toOptionArray')->will($this->returnValue([['value' => 'template_one', 'label' => 'Template One'], ['value' => 'template_two', 'label' => 'Template Two']]));
     $this->_coreRegistry->expects($this->once())->method('registry')->with('config_system_email_template')->will($this->returnValue($collection));
     $this->_emailConfig->expects($this->once())->method('getTemplateLabel')->with('template_new')->will($this->returnValue('Template New'));
     $expectedResult = [['value' => 'template_new', 'label' => 'Template New (Default)'], ['value' => 'template_one', 'label' => 'Template One'], ['value' => 'template_two', 'label' => 'Template Two']];
     $this->_model->setPath('template/new');
     $this->assertEquals($expectedResult, $this->_model->toOptionArray());
 }
Ejemplo n.º 2
0
 public function testGetAvailableTemplates()
 {
     $this->_model->expects($this->atLeastOnce())->method('getThemeTemplates')->will($this->returnValue([]));
     $expectedTemplates = (require __DIR__ . '/Config/_files/email_templates_merged.php');
     foreach ($this->_model->getAvailableTemplates() as $templateOptions) {
         $this->assertArrayHasKey($templateOptions['value'], $expectedTemplates);
         $expectedOptions = $expectedTemplates[$templateOptions['value']];
         $this->assertEquals($expectedOptions['label'], (string) $templateOptions['label']);
         $this->assertEquals($expectedOptions['module'], (string) $templateOptions['group']);
     }
 }
Ejemplo n.º 3
0
 /**
  * @param $templateType string
  * @param $templateText string
  * @param $parsedTemplateText string
  * @param $expectedTemplateSubject string|null
  * @param $expectedOrigTemplateVariables array|null
  * @param $expectedTemplateStyles string|null
  * @dataProvider loadDefaultDataProvider
  */
 public function testLoadDefault($templateType, $templateText, $parsedTemplateText, $expectedTemplateSubject, $expectedOrigTemplateVariables, $expectedTemplateStyles)
 {
     $model = $this->getModelMock(['getDesignParams']);
     $designParams = ['area' => Area::AREA_FRONTEND, 'theme' => 'Magento/blank', 'locale' => Locale::DEFAULT_SYSTEM_LOCALE];
     $model->expects($this->once())->method('getDesignParams')->will($this->returnValue($designParams));
     $templateId = 'templateId';
     $templateFile = 'templateFile';
     $this->emailConfig->expects($this->once())->method('getTemplateFilename')->with($templateId)->will($this->returnValue($templateFile));
     $this->emailConfig->expects($this->once())->method('getTemplateType')->with($templateId)->will($this->returnValue($templateType));
     $modulesDir = $this->getMockBuilder('Magento\\Framework\\Filesystem\\Directory\\ReadInterface')->setMethods(['readFile', 'getRelativePath'])->getMockForAbstractClass();
     $relativePath = 'relativePath';
     $modulesDir->expects($this->once())->method('getRelativePath')->with($templateFile)->will($this->returnValue($relativePath));
     $modulesDir->expects($this->once())->method('readFile')->will($this->returnValue($templateText));
     $this->filesystem->expects($this->once())->method('getDirectoryRead')->with(DirectoryList::ROOT)->will($this->returnValue($modulesDir));
     $model->loadDefault($templateId);
     if ($templateType === 'html') {
         $this->assertEquals(TemplateTypesInterface::TYPE_HTML, $model->getTemplateType());
     } else {
         $this->assertEquals(TemplateTypesInterface::TYPE_TEXT, $model->getTemplateType());
     }
     $this->assertEquals($templateId, $model->getId());
     $this->assertEquals($parsedTemplateText, $model->getTemplateText());
     $this->assertEquals($expectedTemplateSubject, $model->getTemplateSubject());
     $this->assertEquals($expectedOrigTemplateVariables, $model->getData('orig_template_variables'));
     $this->assertEquals($expectedTemplateStyles, $model->getTemplateStyles());
 }
Ejemplo n.º 4
0
 public function testGetDefaultTemplatesAsOptionsArray()
 {
     $directoryMock = $this->getMock('\\Magento\\Framework\\Filesystem\\Directory\\Read', [], [], '', false);
     $this->filesystemMock->expects($this->any())->method('getDirectoryRead')->will($this->returnValue($directoryMock));
     $this->_emailConfigMock->expects($this->once())->method('getAvailableTemplates')->will($this->returnValue([['value' => 'template_b2', 'label' => 'Template B2', 'group' => 'Fixture_ModuleB'], ['value' => 'template_a', 'label' => 'Template A', 'group' => 'Fixture_ModuleA'], ['value' => 'template_b1', 'label' => 'Template B1', 'group' => 'Fixture_ModuleB']]));
     $this->assertEmpty($this->_block->getData('template_options'));
     $this->_block->setTemplate('my/custom\\template.phtml');
     $this->_block->toHtml();
     $expectedResult = ['' => [['value' => '', 'label' => '', 'group' => '']], 'Fixture_ModuleA' => [['value' => 'template_a', 'label' => 'Template A', 'group' => 'Fixture_ModuleA']], 'Fixture_ModuleB' => [['value' => 'template_b1', 'label' => 'Template B1', 'group' => 'Fixture_ModuleB'], ['value' => 'template_b2', 'label' => 'Template B2', 'group' => 'Fixture_ModuleB']]];
     $this->assertEquals($expectedResult, $this->_block->getData('template_options'), 'Options are expected to be sorted by modules and by labels of email templates within modules');
 }
Ejemplo n.º 5
0
 public function testGetDefaultTemplatesAsOptionsArray()
 {
     $dirValueMap = array(array(\Magento\Framework\App\Filesystem::ROOT_DIR, 'var/www/magento\\rootdir/'), array(\Magento\Framework\App\Filesystem::APP_DIR, 'var/www/magento\\rootdir\\app/'), array(\Magento\Framework\App\Filesystem::THEMES_DIR, 'var\\www/magento\\rootdir\\app/themes/'));
     $this->directoryMock = $this->getMock('\\Magento\\Framework\\Filesystem\\Directory\\Read', array(), array(), '', false);
     $this->directoryMock->expects($this->any())->method('isFile')->will($this->returnValue(false));
     $this->directoryMock->expects($this->any())->method('getRelativePath')->will($this->returnValue(''));
     $this->filesystemMock->expects($this->any())->method('getDirectoryRead')->will($this->returnValue($this->directoryMock));
     $this->filesystemMock->expects($this->any())->method('getPath')->will($this->returnValueMap($dirValueMap));
     $this->_emailConfigMock->expects($this->once())->method('getAvailableTemplates')->will($this->returnValue(array('template_b2', 'template_a', 'template_b1')));
     $this->_emailConfigMock->expects($this->exactly(3))->method('getTemplateModule')->will($this->onConsecutiveCalls('Fixture_ModuleB', 'Fixture_ModuleA', 'Fixture_ModuleB'));
     $this->_emailConfigMock->expects($this->exactly(3))->method('getTemplateLabel')->will($this->onConsecutiveCalls('Template B2', 'Template A', 'Template B1'));
     $this->assertEmpty($this->_block->getData('template_options'));
     $this->_block->setTemplate('my/custom\\template.phtml');
     $this->_block->toHtml();
     $expectedResult = array('' => array(array('value' => '', 'label' => '', 'group' => '')), 'Fixture_ModuleA' => array(array('value' => 'template_a', 'label' => 'Template A', 'group' => 'Fixture_ModuleA')), 'Fixture_ModuleB' => array(array('value' => 'template_b1', 'label' => 'Template B1', 'group' => 'Fixture_ModuleB'), array('value' => 'template_b2', 'label' => 'Template B2', 'group' => 'Fixture_ModuleB')));
     $this->assertEquals($expectedResult, $this->_block->getData('template_options'), 'Options are expected to be sorted by modules and by labels of email templates within modules');
 }
Ejemplo n.º 6
0
 /**
  * @param $templateType string
  * @param $templateText string
  * @param $parsedTemplateText string
  * @param $expectedTemplateSubject string|null
  * @param $expectedOrigTemplateVariables array|null
  * @param $expectedTemplateStyles string|null
  * @dataProvider loadDefaultDataProvider
  */
 public function testLoadDefault($templateType, $templateText, $parsedTemplateText, $expectedTemplateSubject, $expectedOrigTemplateVariables, $expectedTemplateStyles)
 {
     $model = $this->getModelMock();
     $templateId = 'templateId';
     $templateFile = 'templateFile';
     $this->emailConfig->expects($this->once())->method('getTemplateFilename')->with($templateId)->will($this->returnValue($templateFile));
     $this->emailConfig->expects($this->once())->method('getTemplateType')->with($templateId)->will($this->returnValue($templateType));
     $modulesDir = $this->getMockBuilder('Magento\\Framework\\Filesystem\\Directory\\ReadInterface')->setMethods(['readFile', 'getRelativePath'])->getMockForAbstractClass();
     $relativePath = 'relativePath';
     $modulesDir->expects($this->once())->method('getRelativePath')->with($templateFile)->will($this->returnValue($relativePath));
     $modulesDir->expects($this->once())->method('readFile')->will($this->returnValue($templateText));
     $this->filesystem->expects($this->once())->method('getDirectoryRead')->with(\Magento\Framework\App\Filesystem\DirectoryList::MODULES)->will($this->returnValue($modulesDir));
     $model->loadDefault($templateId);
     if ($templateType === 'html') {
         $this->assertEquals(\Magento\Email\Model\Template::TYPE_HTML, $model->getTemplateType());
     } else {
         $this->assertEquals(\Magento\Email\Model\Template::TYPE_TEXT, $model->getTemplateType());
     }
     $this->assertEquals($templateId, $model->getId());
     $this->assertEquals($parsedTemplateText, $model->getTemplateText());
     $this->assertEquals($expectedTemplateSubject, $model->getTemplateSubject());
     $this->assertEquals($expectedOrigTemplateVariables, $model->getData('orig_template_variables'));
     $this->assertEquals($expectedTemplateStyles, $model->getTemplateStyles());
 }