assertEquals($body, $node->getNode('body')); $this->assertEquals($blocks, $node->getNode('blocks')); $this->assertEquals($macros, $node->getNode('macros')); $this->assertEquals($parent, $node->getNode('parent')); $this->assertEquals($filename, $node->getAttribute('filename')); } /** * @covers Twig_Node_SandboxedModule::compile * @covers Twig_Node_SandboxedModule::compileDisplayBody * @covers Twig_Node_SandboxedModule::compileDisplayFooter * @dataProvider getTests */ public function testCompile($node, $source, $environment = null) { parent::testCompile($node, $source, $environment); } public function getTests() { $twig = new Twig_Environment(new Twig_Loader_String()); $tests = array(); $body = new Twig_Node_Text('foo', 0); $extends = null; $blocks = new Twig_Node(); $macros = new Twig_Node(); $traits = new Twig_Node(); $filename = 'foo.twig'; $node = new Twig_Node_Module($body, $extends, $blocks, $macros, $traits, $filename); $node = new Twig_Node_SandboxedModule($node, array('for'), array('upper'), array('cycle')); $tests[] = array($node, <<checkSecurity(); echo "foo"; } protected function checkSecurity() { \$this->env->getExtension('sandbox')->checkSecurity( array('upper'), array('for'), array('cycle') ); } public function getTemplateName() { return "foo.twig"; } public function isTraitable() { return true; } } EOF , $twig); $body = new Twig_Node(); $extends = new Twig_Node_Expression_Constant('layout.twig', 0); $blocks = new Twig_Node(); $macros = new Twig_Node(); $traits = new Twig_Node(); $filename = 'foo.twig'; $node = new Twig_Node_Module($body, $extends, $blocks, $macros, $traits, $filename); $node = new Twig_Node_SandboxedModule($node, array('for'), array('upper'), array('cycle')); $tests[] = array($node, <<getParent(\$context)->display(\$context, array_merge(\$this->blocks, \$blocks)); } protected function checkSecurity() { \$this->env->getExtension('sandbox')->checkSecurity( array('upper'), array('for'), array('cycle') ); \$this->parent->checkSecurity(); } public function getTemplateName() { return "foo.twig"; } public function isTraitable() { return false; } } EOF , $twig); return $tests; } }