Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
EmailTemplateConfigFilesTest.php
Go to the documentation of this file.
1 <?php
7 
8 class EmailTemplateConfigFilesTest extends \PHPUnit\Framework\TestCase
9 {
16  public function testFileFormat($file)
17  {
18  $urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
19  $schemaFile = $urnResolver->getRealPath('urn:magento:module:Magento_Email:etc/email_templates.xsd');
20  $validationStateMock = $this->createMock(\Magento\Framework\Config\ValidationStateInterface::class);
21  $validationStateMock->method('isValidationRequired')
22  ->willReturn(true);
23  $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
24  $result = $dom->validate($schemaFile, $errors);
25  $this->assertTrue($result, print_r($errors, true));
26  }
27 
31  public function fileFormatDataProvider()
32  {
33  return \Magento\Framework\App\Utility\Files::init()->getConfigFiles('email_templates.xml');
34  }
35 
42  public function testTemplateReference($templateId)
43  {
46  \Magento\Email\Model\Template\Config::class
47  );
48 
49  $parts = $emailConfig->parseTemplateIdParts($templateId);
50  $templateId = $parts['templateId'];
51 
52  $designParams = [];
53  $theme = $parts['theme'];
54  if ($theme) {
55  $designParams['theme'] = $theme;
56  }
57 
58  $templateFilename = $emailConfig->getTemplateFilename($templateId, $designParams);
59  $this->assertFileExists($templateFilename, 'Email template file, specified in the configuration, must exist');
60  }
61 
65  public function templateReferenceDataProvider()
66  {
67  $data = [];
70  \Magento\Email\Model\Template\Config::class
71  );
72  foreach ($emailConfig->getAvailableTemplates() as $template) {
73  $data[$template['value']] = [$template['value']];
74  }
75  return $data;
76  }
77 
81  public function testMergedFormat()
82  {
83  $validationState = $this->createMock(\Magento\Framework\Config\ValidationStateInterface::class);
84  $validationState->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
87  \Magento\Email\Model\Template\Config\Reader::class,
88  ['validationState' => $validationState]
89  );
90  try {
91  $reader->read();
92  } catch (\Exception $e) {
93  $this->fail('Merged email templates configuration does not pass XSD validation: ' . $e->getMessage());
94  }
95  }
96 }
$templateId
Definition: queue.php:15
$theme
$template
Definition: export.php:12
$errors
Definition: overview.phtml:9