![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/static/testsuite/Magento/Test/Integrity/Readme/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /** * Test to ensure that readme file present in specified directories */ namespace Magento\Test\Integrity\Readme; use Magento\Framework\App\Utility\Files; class ReadmeTest extends \PHPUnit\Framework\TestCase { const README_FILENAME = 'README.md'; const BLACKLIST_FILES_PATTERN = '_files/blacklist/*.txt'; const SCAN_LIST_FILE = '_files/scan_list.txt'; /** @var array Blacklisted files and directories */ private $blacklist = []; /** @var array */ private $scanList = []; protected function setUp(): void { $this->blacklist = $this->getPaths(__DIR__ . '/' . self::BLACKLIST_FILES_PATTERN); $this->scanList = $this->getPaths(__DIR__ . '/' . self::SCAN_LIST_FILE); } public function testReadmeFiles() { $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this); $invoker( /** * @param string $dir */ function ($dir) { $file = $dir . DIRECTORY_SEPARATOR . self::README_FILENAME; $this->assertFileExists( $file, sprintf('File %s not found in %s', self::README_FILENAME, $dir) ); }, $this->getDirectories() ); } /** * @return array */ private function getDirectories() { $directories = []; foreach ($this->scanList as $dir) { if (!$this->isInBlacklist($dir)) { $directories[][] = $dir; } } return $directories; } /** * @param $path * @return bool */ private function isInBlacklist($path) { return in_array($path, $this->blacklist); } /** * Get paths basing on the file with patterns * * @param string $patternsFile * @return array */ private function getPaths($patternsFile) { $result = []; $files = Files::init()->readLists($patternsFile); foreach ($files as $file) { if (is_dir($file)) { $result[] = rtrim($file, '/'); } } return $result; } }