/** * @covers Twig_Node_For::__construct */ public function testConstructor() { $keyTarget = new Twig_Node_Expression_AssignName('key', 0); $valueTarget = new Twig_Node_Expression_AssignName('item', 0); $seq = new Twig_Node_Expression_Name('items', 0); $body = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0); $else = null; $withLoop = false; $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, 0); $this->assertEquals($keyTarget, $node->getNode('key_target')); $this->assertEquals($valueTarget, $node->getNode('value_target')); $this->assertEquals($seq, $node->getNode('seq')); $this->assertEquals($body, $node->getNode('body')); $this->assertEquals(null, $node->getNode('else')); $this->assertEquals($withLoop, $node->getAttribute('with_loop')); $else = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0); $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, 0); $this->assertEquals($else, $node->getNode('else')); }
public function testConstructor() { $keyTarget = new Twig_Node_Expression_AssignName('key', 1); $valueTarget = new Twig_Node_Expression_AssignName('item', 1); $seq = new Twig_Node_Expression_Name('items', 1); $ifexpr = new Twig_Node_Expression_Constant(true, 1); $body = new Twig_Node(array(new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1)), array(), 1); $else = null; $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, 1); $node->setAttribute('with_loop', false); $this->assertEquals($keyTarget, $node->getNode('key_target')); $this->assertEquals($valueTarget, $node->getNode('value_target')); $this->assertEquals($seq, $node->getNode('seq')); $this->assertTrue($node->getAttribute('ifexpr')); $this->assertEquals('Twig_Node_If', get_class($node->getNode('body'))); $this->assertEquals($body, $node->getNode('body')->getNode('tests')->getNode(1)->getNode(0)); $this->assertNull($node->getNode('else')); $else = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1); $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, 1); $node->setAttribute('with_loop', false); $this->assertEquals($else, $node->getNode('else')); }
/** * @param \Twig_Node_For $node */ public function addForCollection(\Twig_Node_For $node) { $iteratorArray = $node->getNode('value_target')->getAttribute('name'); $iterator = $iteratorArray[0]; $interval = $node->getNode('seq'); if ($interval->hasNode('left') && $interval->hasNode('right')) { $left = $interval->getNode('left')->getAttribute('value'); $right = $interval->getNode('right')->getAttribute('value'); $this->forCollection[$iterator] = array('left' => $left, 'right' => $right); } }