27 public static function setUpBeforeClass()
29 foreach (
Files::init()->getLayoutFiles([],
false) as $file) {
30 $xml = simplexml_load_file($file);
31 $elements = $xml->xpath(
'/layout//*[self::container or self::block]') ?: [];
33 foreach ($elements as $node) {
34 $alias = (string)$node[
'as'];
36 $alias = (string)$node[
'name'];
38 if ($node->getName() ==
'container') {
39 self::$_containerAliases[
$alias][
'files'][] = $file;
40 self::$_containerAliases[
$alias][
'names'][] = (string)$node[
'name'];
42 self::$_blockAliases[
$alias][
'files'][] = $file;
43 self::$_blockAliases[
$alias][
'names'][] = (string)$node[
'name'];
51 $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this);
61 if (isset(self::$_containerAliases[
$alias])) {
62 if (!isset(self::$_blockAliases[
$alias])) {
64 "Element with alias '{$alias}' is used as a block in file '{$file}' " .
65 "via getChildBlock() method," .
66 " while '{$alias}' alias is declared as a container in file(s): " .
69 self::$_containerAliases[
$alias][
'files']
73 $this->markTestIncomplete(
74 "Element with alias '{$alias}' is used as a block in file '{$file}' " .
75 "via getChildBlock() method." .
76 " It's impossible to determine explicitly whether the element is a block or a container, " .
77 "as it is declared as a container in file(s): " .
80 self::$_containerAliases[
$alias][
'files']
81 ) .
" and as a block in file(s): " . join(
83 self::$_blockAliases[
$alias][
'files']
104 foreach ($collectedFiles as $file) {
107 '/\->getChildBlock\(\'([^\']+)\'\)/x' 109 foreach ($aliases as
$alias) {
getChildBlockDataProvider()
const INCLUDE_NON_CLASSES
testBlocksNotContainers()
static getAllMatches($contents, $regex, &$result=[])
static $_containerAliases