Ejemplo n.º 1
0
 /**
  * @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'));
 }
Ejemplo n.º 2
0
 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'));
 }
Ejemplo n.º 3
0
 /**
  * @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);
     }
 }