* * 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:----ocKEDZsLTzEX4qV3LfbTmPxhaZdMlAolPGe2GZn3oG29ZI/QMFqJZT7TTxTk9FCfVx8W9v0zfCZYNmVKppBAqbsCusA5DAO08mjSFiK75qY62LT2TkpifinPlAbkA6wZFS/KtvkfEU8Z2wBDaj9+gVRp5OOrkpQPBC3xuIFI1VrS2sturTnGF09ZFxvaiNEqIGwQvOo53yMwqgMP2Gc6kE7B4AecpZdyD3aI+AdCo0yHiRG8XJjkbQZFqqFUSrFgGL00jj1YU8baL2vewt972GKZ1Lri0O7r8bEdD8dS07WYJFEFAMcbCjHnhbAc66dVJnyYSWa/3ePeXuLAXJTLJ4DJUHUsAvTbfDz5pvN1L+g2+XkHWq59tvAqTYaHwNaKlaifHL07p37J5P9kKXWfNQUcAJUmP5nWnubbv+JeS0VCu6WewhuIOclWjXCQz7kJ5ZqRfRkISAlIvuH9V9+xgSrCb+jODr8nXxpjpl9UHqyShRusOOisOariz6/+WG8NxJVI77bwfZuaOXIlCHCYAyaPZ7D97LMJrKXp0uFGKXCy713XWCxJLzSJbbdMvIyQ7CyazTh3Oi/reaWqIpu3RcT72eUdcypKZyuNPuxsZR+g+te7NM/a2xcMNKhnNmrGUmpzL8S6zJMApkWyb8CeG5zzGvywX5dJ1zVEz0vo/N4=----ATTACHMENT:----MzcxNDI3Njc2ODEyODEzMyAxNzc4MjkwNjk4Nzg4OTUzIDE1OTQyODg4OTI1NDcxMzk=