芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/xmintal-back/vendor/codeception/phpunit-wrapper/src/NonFinal/NameFilterIterator.php
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Codeception\PHPUnit\NonFinal; use PHPUnit\Framework\TestSuite; use PHPUnit\Framework\WarningTestCase; use PHPUnit\Util\RegularExpression; use RecursiveFilterIterator; use RecursiveIterator; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ class NameFilterIterator extends RecursiveFilterIterator { /** * @var string */ protected $filter; /** * @var int */ protected $filterMin; /** * @var int */ protected $filterMax; /** * @throws \Exception */ public function __construct(RecursiveIterator $iterator, string $filter) { parent::__construct($iterator); $this->setFilter($filter); } /** * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException */ public function accept(): bool { $test = $this->getInnerIterator()->current(); if ($test instanceof TestSuite) { return true; } $tmp = \PHPUnit\Util\Test::describe($test); if ($test instanceof WarningTestCase) { $name = $test->getMessage(); } else { if ($tmp[0] !== '') { $name = \implode('::', $tmp); } else { $name = $tmp[1]; } } $accepted = @\preg_match($this->filter, $name, $matches); if ($accepted && isset($this->filterMax)) { $set = \end($matches); $accepted = $set >= $this->filterMin && $set <= $this->filterMax; } return (bool) $accepted; } /** * @throws \Exception */ protected function setFilter(string $filter): void { if (RegularExpression::safeMatch($filter, '') === false) { // Handles: // * testAssertEqualsSucceeds#4 // * testAssertEqualsSucceeds#4-8 if (\preg_match('/^(.*?)#(\d+)(?:-(\d+))?$/', $filter, $matches)) { if (isset($matches[3]) && $matches[2] < $matches[3]) { $filter = \sprintf( '%s.*with data set #(\d+)$', $matches[1] ); $this->filterMin = $matches[2]; $this->filterMax = $matches[3]; } else { $filter = \sprintf( '%s.*with data set #%s$', $matches[1], $matches[2] ); } } // Handles: // * testDetermineJsonError@JSON_ERROR_NONE // * testDetermineJsonError@JSON.* elseif (\preg_match('/^(.*?)@(.+)$/', $filter, $matches)) { $filter = \sprintf( '%s.*with data set "%s"$', $matches[1], $matches[2] ); } // Escape delimiters in regular expression. Do NOT use preg_quote, // to keep magic characters. $filter = \sprintf('/%s/i', \str_replace( '/', '\\/', $filter )); } $this->filter = $filter; } }