XsdTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\ObjectManager\Test\Unit\Config;
  7. class XsdTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Framework\ObjectManager\Config\SchemaLocator
  11. */
  12. protected $_schemaLocator;
  13. /**
  14. * Path to xsd schema file
  15. * @var string
  16. */
  17. protected $_xsdSchema;
  18. /**
  19. * @var \Magento\Framework\TestFramework\Unit\Utility\XsdValidator
  20. */
  21. protected $_xsdValidator;
  22. protected function setUp()
  23. {
  24. if (!function_exists('libxml_set_external_entity_loader')) {
  25. $this->markTestSkipped('Skipped on HHVM. Will be fixed in MAGETWO-45033');
  26. }
  27. $this->_schemaLocator = new \Magento\Framework\ObjectManager\Config\SchemaLocator();
  28. $this->_xsdSchema = $this->_schemaLocator->getSchema();
  29. $this->_xsdValidator = new \Magento\Framework\TestFramework\Unit\Utility\XsdValidator();
  30. }
  31. /**
  32. * @param string $xmlString
  33. * @param array $expectedError
  34. * @dataProvider schemaCorrectlyIdentifiesInvalidXmlDataProvider
  35. */
  36. public function testSchemaCorrectlyIdentifiesInvalidXml($xmlString, $expectedError)
  37. {
  38. $actualError = $this->_xsdValidator->validate($this->_xsdSchema, $xmlString);
  39. $this->assertEquals($expectedError, $actualError);
  40. }
  41. /**
  42. * Get array of invalid xml strings
  43. *
  44. * @return array
  45. */
  46. public function schemaCorrectlyIdentifiesInvalidXmlDataProvider()
  47. {
  48. return include __DIR__ . '/_files/invalidConfigXmlArray.php';
  49. }
  50. public function testSchemaCorrectlyIdentifiesValidXml()
  51. {
  52. $xmlString = file_get_contents(__DIR__ . '/_files/valid_config.xml');
  53. $actualResult = $this->_xsdValidator->validate($this->_xsdSchema, $xmlString);
  54. $this->assertEmpty($actualResult, join("\n", $actualResult));
  55. }
  56. }