mirror of
https://github.com/danog/PHP-Parser.git
synced 2024-11-27 04:14:44 +01:00
b49c55c9e5
a) ->traverseNode() now operates on a clone of the node, otherwise the original node will be modified too b) before nodes were passed to the following visitor unchanged, even though they were already changed in the tree
53 lines
1.6 KiB
PHP
53 lines
1.6 KiB
PHP
<?php
|
|
|
|
class PHPParser_Tests_NodeAbstractTest extends PHPUnit_Framework_TestCase
|
|
{
|
|
public function testConstruct() {
|
|
$node = $this->getMockForAbstractClass(
|
|
'PHPParser_NodeAbstract',
|
|
array(
|
|
array(
|
|
'subNode' => 'value'
|
|
),
|
|
10,
|
|
'/** doc comment */'
|
|
),
|
|
'PHPParser_Node_Dummy'
|
|
);
|
|
|
|
$this->assertEquals('Dummy', $node->getType());
|
|
$this->assertEquals(array('subNode'), $node->getSubNodeNames());
|
|
$this->assertEquals(10, $node->getLine());
|
|
$this->assertEquals('/** doc comment */', $node->getDocComment());
|
|
$this->assertEquals('value', $node->subNode);
|
|
$this->assertTrue(isset($node->subNode));
|
|
|
|
return $node;
|
|
}
|
|
|
|
/**
|
|
* @depends testConstruct
|
|
*/
|
|
public function testChange(PHPParser_Node $node) {
|
|
// change of line
|
|
$node->setLine(15);
|
|
$this->assertEquals(15, $node->getLine());
|
|
|
|
// change of doc comment
|
|
$node->setDocComment('/** other doc comment */');
|
|
$this->assertEquals('/** other doc comment */', $node->getDocComment());
|
|
|
|
// direct modification
|
|
$node->subNode = 'newValue';
|
|
$this->assertEquals('newValue', $node->subNode);
|
|
|
|
// indirect modification
|
|
$subNode =& $node->subNode;
|
|
$subNode = 'newNewValue';
|
|
$this->assertEquals('newNewValue', $node->subNode);
|
|
|
|
// removal
|
|
unset($node->subNode);
|
|
$this->assertFalse(isset($node->subNode));
|
|
}
|
|
} |