annotate vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.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 4c8ae668cc8c
children 129ea1e6d783
rev   line source
Chris@13 1 <?php declare(strict_types=1);
Chris@0 2
Chris@0 3 namespace PhpParser\Builder;
Chris@0 4
Chris@0 5 use PhpParser\Comment\Doc;
Chris@0 6 use PhpParser\Node;
Chris@0 7 use PhpParser\Node\Stmt;
Chris@13 8 use PHPUnit\Framework\TestCase;
Chris@0 9
Chris@13 10 class NamespaceTest extends TestCase
Chris@0 11 {
Chris@0 12 protected function createNamespaceBuilder($fqn) {
Chris@0 13 return new Namespace_($fqn);
Chris@0 14 }
Chris@0 15
Chris@0 16 public function testCreation() {
Chris@0 17 $stmt1 = new Stmt\Class_('SomeClass');
Chris@0 18 $stmt2 = new Stmt\Interface_('SomeInterface');
Chris@0 19 $stmt3 = new Stmt\Function_('someFunction');
Chris@0 20 $docComment = new Doc('/** Test */');
Chris@0 21 $expected = new Stmt\Namespace_(
Chris@0 22 new Node\Name('Name\Space'),
Chris@13 23 [$stmt1, $stmt2, $stmt3],
Chris@13 24 ['comments' => [$docComment]]
Chris@0 25 );
Chris@0 26
Chris@0 27 $node = $this->createNamespaceBuilder('Name\Space')
Chris@0 28 ->addStmt($stmt1)
Chris@13 29 ->addStmts([$stmt2, $stmt3])
Chris@0 30 ->setDocComment($docComment)
Chris@0 31 ->getNode()
Chris@0 32 ;
Chris@0 33 $this->assertEquals($expected, $node);
Chris@0 34
Chris@13 35 $node = $this->createNamespaceBuilder(new Node\Name(['Name', 'Space']))
Chris@0 36 ->setDocComment($docComment)
Chris@13 37 ->addStmts([$stmt1, $stmt2])
Chris@0 38 ->addStmt($stmt3)
Chris@0 39 ->getNode()
Chris@0 40 ;
Chris@0 41 $this->assertEquals($expected, $node);
Chris@0 42
Chris@0 43 $node = $this->createNamespaceBuilder(null)->getNode();
Chris@0 44 $this->assertNull($node->name);
Chris@0 45 $this->assertEmpty($node->stmts);
Chris@0 46 }
Chris@0 47 }