/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Indexer/Test/Unit/XsdTest.php
88 строк
3 KB
Manish Ranjan
AC-16248: PHPUnit 12 Upgrade | Fix Framework unit tests
09 янв 2026, 19:35
09 янв 2026, 19:35
de6cafc
Код
Авторство
О чём код?
<?php /** * Copyright 2013 Adobe * All Rights Reserved. */ declare(strict_types=1); namespace Magento\Framework\Indexer\Test\Unit; use Magento\Framework\Config\Dom\UrnResolver; use Magento\Framework\TestFramework\Unit\Utility\XsdValidator; use PHPUnit\Framework\AssertionFailedError; use PHPUnit\Framework\TestCase; use PHPUnit\Framework\Attributes\DataProvider; class XsdTest extends TestCase { /** * Path to xsd schema file * @var string */ protected $_xsdSchema; /** * @var UrnResolver */ protected $urnResolver; /** * @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'); } $this->urnResolver = new UrnResolver(); $this->_xsdSchema = $this->urnResolver->getRealPath('urn:magento:framework:Indexer/etc/indexer.xsd'); $this->_xsdValidator = new XsdValidator(); } /** * @param string $xmlString * @param array $expectedError */ #[DataProvider('schemaCorrectlyIdentifiesInvalidXmlDataProvider')] public function testSchemaCorrectlyIdentifiesInvalidXml($xmlString, $expectedError) { $actualErrors = $this->_xsdValidator->validate( $this->urnResolver->getRealPath('urn:magento:framework:Indexer/etc/indexer_merged.xsd'), $xmlString ); $this->assertNotEmpty($actualErrors); foreach ($expectedError as [$error, $isRegex]) { if ($isRegex) { $matched = false; foreach ($actualErrors as $actualError) { try { $this->assertMatchesRegularExpression($error, $actualError); $matched = true; break; } catch (AssertionFailedError) { } } $this->assertTrue($matched, "None of the errors matched: $error"); } else { $this->assertContains($error, $actualErrors); } } } public function testSchemaCorrectlyIdentifiesValidXml() { $xmlString = file_get_contents(__DIR__ . '/_files/valid_indexer.xml'); $actualResult = $this->_xsdValidator->validate($this->_xsdSchema, $xmlString); $this->assertEmpty($actualResult); } /** * Data provider with invalid xml array according to events.xsd */ public static function schemaCorrectlyIdentifiesInvalidXmlDataProvider() { return include __DIR__ . '/_files/invalidIndexerXmlArray.php'; } }