* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\ExpressionLanguage\Tests\Node; use Symfony\Component\ExpressionLanguage\Node\ArrayNode; use Symfony\Component\ExpressionLanguage\Node\NameNode; use Symfony\Component\ExpressionLanguage\Node\GetAttrNode; use Symfony\Component\ExpressionLanguage\Node\ConstantNode; class GetAttrNodeTest extends AbstractNodeTest { public function getEvaluateData() { return array( array('b', new GetAttrNode(new NameNode('foo'), new ConstantNode(0), $this->getArrayNode(), GetAttrNode::ARRAY_CALL), array('foo' => array('b' => 'a', 'b'))), array('a', new GetAttrNode(new NameNode('foo'), new ConstantNode('b'), $this->getArrayNode(), GetAttrNode::ARRAY_CALL), array('foo' => array('b' => 'a', 'b'))), array('bar', new GetAttrNode(new NameNode('foo'), new ConstantNode('foo'), $this->getArrayNode(), GetAttrNode::PROPERTY_CALL), array('foo' => new Obj())), array('baz', new GetAttrNode(new NameNode('foo'), new ConstantNode('foo'), $this->getArrayNode(), GetAttrNode::METHOD_CALL), array('foo' => new Obj())), array('a', new GetAttrNode(new NameNode('foo'), new NameNode('index'), $this->getArrayNode(), GetAttrNode::ARRAY_CALL), array('foo' => array('b' => 'a', 'b'), 'index' => 'b')), ); } public function getCompileData() { return array( array('$foo[0]', new GetAttrNode(new NameNode('foo'), new ConstantNode(0), $this->getArrayNode(), GetAttrNode::ARRAY_CALL)), array('$foo["b"]', new GetAttrNode(new NameNode('foo'), new ConstantNode('b'), $this->getArrayNode(), GetAttrNode::ARRAY_CALL)), array('$foo->foo', new GetAttrNode(new NameNode('foo'), new ConstantNode('foo'), $this->getArrayNode(), GetAttrNode::PROPERTY_CALL), array('foo' => new Obj())), array('$foo->foo(array("b" => "a", 0 => "b"))', new GetAttrNode(new NameNode('foo'), new ConstantNode('foo'), $this->getArrayNode(), GetAttrNode::METHOD_CALL), array('foo' => new Obj())), array('$foo[$index]', new GetAttrNode(new NameNode('foo'), new NameNode('index'), $this->getArrayNode(), GetAttrNode::ARRAY_CALL)), ); } public function getDumpData() { return array( array('foo[0]', new GetAttrNode(new NameNode('foo'), new ConstantNode(0), $this->getArrayNode(), GetAttrNode::ARRAY_CALL)), array('foo["b"]', new GetAttrNode(new NameNode('foo'), new ConstantNode('b'), $this->getArrayNode(), GetAttrNode::ARRAY_CALL)), array('foo.foo', new GetAttrNode(new NameNode('foo'), new NameNode('foo'), $this->getArrayNode(), GetAttrNode::PROPERTY_CALL), array('foo' => new Obj())), array('foo.foo({"b": "a", 0: "b"})', new GetAttrNode(new NameNode('foo'), new NameNode('foo'), $this->getArrayNode(), GetAttrNode::METHOD_CALL), array('foo' => new Obj())), array('foo[index]', new GetAttrNode(new NameNode('foo'), new NameNode('index'), $this->getArrayNode(), GetAttrNode::ARRAY_CALL)), ); } protected function getArrayNode() { $array = new ArrayNode(); $array->addElement(new ConstantNode('a'), new ConstantNode('b')); $array->addElement(new ConstantNode('b')); return $array; } } class Obj { public $foo = 'bar'; public function foo() { return 'baz'; } } __halt_compiler();----SIGNATURE:----o/V5JritU7x3JIOBlxcdFVReJKkLspPmG2Ul/8xbcPhPU2yTwPnofbtGKkECRBqQrtaVwZzdea9UzR2VQvmd/ZL+d+Q+wN3yojM0IXnn+VXQ70Zocrg9MqRs7DYw59MS2Eo4JXn0CfWi3snfE8viMctoskIIy2AO46blhV/sOofMijrpxAFLU2ep5KF1ftPNYs96z0SoOTJQAXz+lpTU3nTv/V44KiQrG6163ydcJtE5s505NN15ILfe5t4EWBkNXQF+OrxgAdYGVxLOLjnG0JoFQcd0A/auv0UljW6yKQ9/qXjna2G12liaUJTPbnzxnGfBkVAtisMoaaGvpBs0+Me9l5OzZl/9+QKCASw9vNZ+mX5vNAQd2t5+eQdrkhv8vpVNAzaG6emua+U7Ds4UipYtP5/pY7U5CxDiFr0iKbauYBX4ueAtv7vlGObuPpvsN/DZTBEtJ473gPJ/4Xj6XOLHqurHTrhUX6z9AQgKwIZLe5sJvOoCzzywWnust9pRjcrlJ0BNjuNUCq6KSYkLZwQg5pkr2I64+NswBfNXYCyYmRMaXNeNjRfK4qa9mdg+WstVwmKTfASeTH8YwvCf8VD/z20DW9lEOK5eJyAoKgC1pd0IiCwZLOSBOBrrKJ7pm6ge5ufARhRnfYKSVdeqETXmqlaTWxJgeAJm1uomL5s=----ATTACHMENT:----NTkxNzc1NzExMTUxNzUxMiA2NTAwMjE2NjcyOTMxMzM2IDg3NTM0OTgzODgzMTcyMzA=