/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
dev/tests/static/testsuite/Magento/Test/Integrity/Layout/HandlesTest.php
97 строк
3 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 10:44
22 окт 2025, 10:44
264bea2
Код
Авторство
О чём код?
<?php /** * Test format of layout files * * Copyright 2013 Adobe * All Rights Reserved. */ namespace Magento\Test\Integrity\Layout; class HandlesTest extends \PHPUnit\Framework\TestCase { /** * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function testHandleDeclarations() { $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this); $invoker( /** * Test dependencies between handle attributes that is out of coverage by XSD * * @param string $layoutFile */ function ($layoutFile) { $issues = []; $node = simplexml_load_file($layoutFile); $label = $node['label']; $designAbstraction = $node['design_abstraction']; if (!$label) { if ($designAbstraction) { $issues[] = 'Attribute "design_abstraction" is defined, but "label" is not'; } } if ($issues) { $this->fail("Issues found in handle declaration:\n" . implode("\n", $issues) . "\n"); } }, \Magento\Framework\App\Utility\Files::init()->getLayoutFiles() ); } public function testContainerDeclarations() { $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this); $invoker( /** * Test dependencies between container attributes that is out of coverage by XSD * * @param string $layoutFile */ function ($layoutFile) { $issues = []; $xml = simplexml_load_file($layoutFile); $containers = $xml->xpath('/layout//container') ?: []; /** @var \SimpleXMLElement $node */ foreach ($containers as $node) { if (!isset($node['htmlTag']) && (isset($node['htmlId']) || isset($node['htmlClass']))) { $issues[] = $node->asXML(); } } if ($issues) { $this->fail( 'The following containers declare attribute "htmlId" and/or "htmlClass", but not "htmlTag":' . "\n" . implode( "\n", $issues ) . "\n" ); } }, \Magento\Framework\App\Utility\Files::init()->getLayoutFiles() ); } public function testHeadBlockUsage() { $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this); $invoker( /** * Test validate that head block doesn't exist in layout * * @param string $layoutFile */ function ($layoutFile) { $dom = new \DOMDocument(); $dom->load($layoutFile); $xpath = new \DOMXpath($dom); if ($xpath->query("//*[@name='head']")->length) { $this->fail('Following file contains deprecated head block. File Path:' . "\n" . $layoutFile); } }, \Magento\Framework\App\Utility\Files::init()->getLayoutFiles() ); } }