Mercurial > hg > isophonics-drupal-site
view vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FindingVisitorTest.php @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | |
children | 129ea1e6d783 |
line wrap: on
line source
<?php declare(strict_types=1); namespace PhpParser\NodeVisitor; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\NodeTraverser; use PHPUnit\Framework\TestCase; class FindingVisitorTest extends TestCase { public function testFindVariables() { $traverser = new NodeTraverser(); $visitor = new FindingVisitor(function(Node $node) { return $node instanceof Node\Expr\Variable; }); $traverser->addVisitor($visitor); $assign = new Expr\Assign(new Expr\Variable('a'), new Expr\BinaryOp\Concat( new Expr\Variable('b'), new Expr\Variable('c') )); $stmts = [new Node\Stmt\Expression($assign)]; $traverser->traverse($stmts); $this->assertSame([ $assign->var, $assign->expr->left, $assign->expr->right, ], $visitor->getFoundNodes()); } public function testFindAll() { $traverser = new NodeTraverser(); $visitor = new FindingVisitor(function(Node $node) { return true; // All nodes }); $traverser->addVisitor($visitor); $assign = new Expr\Assign(new Expr\Variable('a'), new Expr\BinaryOp\Concat( new Expr\Variable('b'), new Expr\Variable('c') )); $stmts = [new Node\Stmt\Expression($assign)]; $traverser->traverse($stmts); $this->assertSame([ $stmts[0], $assign, $assign->var, $assign->expr, $assign->expr->left, $assign->expr->right, ], $visitor->getFoundNodes()); } }