![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-import-export/Test/Unit/Model/Export/Config/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\ImportExport\Test\Unit\Model\Export\Config; use Magento\Framework\Config\Dom\UrnResolver; use Magento\Framework\TestFramework\Unit\Utility\XsdValidator; use PHPUnit\Framework\TestCase; class XsdTest extends TestCase { /** * Path to xsd file * @var string */ protected $_xsdSchemaPath; /** * @var XsdValidator */ protected $_xsdValidator; protected function setUp(): void { if (!function_exists('libxml_set_external_entity_loader')) { $this->markTestSkipped('Skipped on HHVM. Will be fixed in MAGETWO-45033'); } $urnResolver = new UrnResolver(); $this->_xsdSchemaPath = $urnResolver->getRealPath('urn:magento:module:Magento_ImportExport:etc/'); $this->_xsdValidator = new XsdValidator(); } /** * @param string $schemaName * @param string $xmlString * @param array $expectedError */ protected function _loadDataForTest($schemaName, $xmlString, $expectedError) { $actualError = $this->_xsdValidator->validate($this->_xsdSchemaPath . $schemaName, $xmlString); $this->assertEquals(false, empty($actualError)); foreach ($expectedError as $error) { $this->assertContains($error, $actualError); } } /** * @param string $xmlString * @param array $expectedError * @dataProvider schemaCorrectlyIdentifiesExportOptionsDataProvider */ public function testSchemaCorrectlyIdentifiesInvalidProductOptionsXml($xmlString, $expectedError) { $this->_loadDataForTest('export.xsd', $xmlString, $expectedError); } /** * @param string $xmlString * @param array $expectedError * @dataProvider schemaCorrectlyIdentifiesInvalidExportMergedXmlDataProvider */ public function testSchemaCorrectlyIdentifiesInvalidProductOptionsMergedXml($xmlString, $expectedError) { $this->_loadDataForTest('export_merged.xsd', $xmlString, $expectedError); } /** * @param string $schemaName * @param string $validFileName * @dataProvider schemaCorrectlyIdentifiesValidXmlDataProvider */ public function testSchemaCorrectlyIdentifiesValidXml($schemaName, $validFileName) { $xmlString = file_get_contents(__DIR__ . '/_files/' . $validFileName); $schemaPath = $this->_xsdSchemaPath . $schemaName; $actualResult = $this->_xsdValidator->validate($schemaPath, $xmlString); $this->assertEquals([], $actualResult); } /** * Data provider with valid xml array according to schema */ public function schemaCorrectlyIdentifiesValidXmlDataProvider() { return [ 'product_options' => ['export.xsd', 'export_valid.xml'], 'product_options_merged' => ['export_merged.xsd', 'export_merged_valid.xml'] ]; } /** * Data provider with invalid xml array according to schema */ public function schemaCorrectlyIdentifiesExportOptionsDataProvider() { return include __DIR__ . '/_files/invalidExportXmlArray.php'; } /** * Data provider with invalid xml array according to schema */ public function schemaCorrectlyIdentifiesInvalidExportMergedXmlDataProvider() { return include __DIR__ . '/_files/invalidExportMergedXmlArray.php'; } }