2 declare(strict_types = 1);
18 use PhpParser\NodeTraverser;
19 use PhpParser\NodeVisitor\NameResolver;
20 use PhpParser\ParserFactory;
22 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
34 $parser = (
new ParserFactory())->create(ParserFactory::PREFER_PHP7);
35 $fixtureFile = __DIR__ .
'/Fixtures/ArrayGlobalMatcherFixture.php';
36 $statements =
$parser->parse(file_get_contents($fixtureFile));
38 $traverser =
new NodeTraverser();
39 $traverser->addVisitor(
new NameResolver());
42 '$GLOBALS[\'TYPO3_DB\']' => [
44 'Breaking-80929-TYPO3_DBMovedToExtension.rst',
49 $traverser->addVisitor($subject);
50 $traverser->traverse($statements);
51 $expectedHitLineNumbers = [
54 $actualHitLineNumbers = [];
55 foreach ($subject->getMatches() as $hit) {
56 $actualHitLineNumbers[] = $hit[
'line'];
58 $this->assertEquals($expectedHitLineNumbers, $actualHitLineNumbers);
69 '$GLOBALS[\'foo\']' => [
77 $bar = $GLOBALS[\'foo\'] = \'bar\';',
96 $parser = (
new ParserFactory())->create(ParserFactory::ONLY_PHP7);
97 $statements =
$parser->parse($phpCode);
101 $traverser =
new NodeTraverser();
102 $traverser->addVisitor($subject);
103 $traverser->traverse($statements);
105 $result = $subject->getMatches();
106 $this->assertEquals($expected[0][
'restFiles'], $result[0][
'restFiles']);