123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Test\Less;
- use Magento\Framework\App\Utility;
- use Magento\TestFramework\CodingStandard\Tool\CodeSniffer;
- use Magento\TestFramework\CodingStandard\Tool\CodeSniffer\LessWrapper;
- use Magento\Framework\App\Utility\Files;
- use Magento\Test\Php\LiveCodeTest as PHPCodeTest;
- /**
- * Set of tests for static code style
- */
- class LiveCodeTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var string
- */
- private static $reportDir = '';
- /**
- * Setup basics for all tests
- *
- * @return void
- */
- public static function setUpBeforeClass()
- {
- self::$reportDir = BP . '/dev/tests/static/report';
- if (!is_dir(self::$reportDir)) {
- mkdir(self::$reportDir, 0770);
- }
- }
- /**
- * Run the magento specific coding standards on the code
- *
- * @return void
- */
- public function testCodeStyle()
- {
- $reportFile = self::$reportDir . '/csless_report.txt';
- $wrapper = new LessWrapper();
- $codeSniffer = new CodeSniffer(realpath(__DIR__ . '/_files/lesscs'), $reportFile, $wrapper);
- if (!$codeSniffer->canRun()) {
- $this->markTestSkipped('PHP Code Sniffer is not installed.');
- }
- $codeSniffer->setExtensions([LessWrapper::LESS_FILE_EXTENSION]);
- $fileList = PHPCodeTest::getWhitelist([LessWrapper::LESS_FILE_EXTENSION], __DIR__, __DIR__);
- $result = $codeSniffer->run($this->filterFiles($fileList));
- $report = file_exists($reportFile) ? file_get_contents($reportFile) : "";
- $this->assertEquals(
- 0,
- $result,
- "PHP Code Sniffer has found {$result} error(s): " . PHP_EOL . $report
- );
- }
- /**
- * Skip blacklisted files
- *
- * @param array $fileList
- * @return array
- * @throws \Exception
- */
- private function filterFiles(array $fileList)
- {
- $blackListFiles = Files::init()->readLists(__DIR__ . '/_files/blacklist/*.txt');
- $filter = function ($value) use ($blackListFiles) {
- return !in_array($value, $blackListFiles);
- };
- return array_filter($fileList, $filter);
- }
- }
|