Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ThemeHandlesTest.php
Go to the documentation of this file.
1 <?php
9 
10 class ThemeHandlesTest extends \PHPUnit\Framework\TestCase
11 {
15  protected $_baseFrontendHandles = null;
16 
18  {
19  $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this);
20  $invoker(
26  function ($handleName) {
27  $this->assertContains(
28  $handleName,
29  $this->_getBaseFrontendHandles(),
30  "Handle '{$handleName}' is not declared in any module.'"
31  );
32  },
34  );
35  }
36 
40  public function designHandlesDataProvider()
41  {
43  ['include_code' => false, 'area' => 'frontend'],
44  false
45  );
46  $handles = $this->_extractLayoutHandles($files);
47  $result = [];
48  foreach ($handles as $handleName) {
49  $result[$handleName] = [$handleName];
50  }
51  return $result;
52  }
53 
59  protected function _getBaseFrontendHandles()
60  {
61  if ($this->_baseFrontendHandles === null) {
63  ['include_design' => false, 'area' => 'frontend'],
64  false
65  );
66  $this->_baseFrontendHandles = $this->_extractLayoutHandles($files);
67  }
69  }
70 
77  protected function _extractLayoutHandles(array $files)
78  {
79  $result = [];
80  foreach ($files as $filename) {
81  $handleName = basename($filename, '.xml');
82  $result[] = $handleName;
83  }
84  $result = array_unique($result);
85  return $result;
86  }
87 }
foreach($appDirs as $dir) $files