function testTreeGeneration() { $tpl = $this->newPHPTAL(); $parser = new PHPTAL_Dom_SaxXmlParser($tpl->getEncoding()); $treeGen = $parser->parseFile(new PHPTAL_Dom_PHPTALDocumentBuilder(), 'input/parser.01.xml')->getResult(); $state = new PHPTAL_Php_State($tpl); $codewriter = new PHPTAL_Php_CodeWriter($state); $codewriter->doFunction('test', '$tpl'); $treeGen->generateCode($codewriter); $codewriter->doEnd('function'); $result = $codewriter->getResult(); $expected = <<<EOS <?php function test(\$tpl) { \$ctx->setXmlDeclaration('<?xml version="1.0"?>',false) ;?> <html> <head> <title>test document</title> </head> <body> <h1>test document</h1> <a href="http://phptal.sf.net">phptal</a> </body> </html><?php } ?> EOS; $result = normalize_phpsource($result, true); $expected = normalize_phpsource($expected, true); $this->assertEquals($expected, $result); }
public function testBadAttribute() { try { $parser = new PHPTAL_Dom_SaxXmlParser('UTF-8'); $parser->parseFile(new PHPTAL_Dom_PHPTALDocumentBuilder(), 'input/parser.03.xml')->getResult(); } catch (Exception $e) { $this->assertContains('href', $e->getMessage()); $this->assertContains('quote', $e->getMessage()); } }
public function testAllowGtAndLtInTextNodes() { $parser = new PHPTAL_Dom_SaxXmlParser('UTF-8'); $parser->parseFile($builder = new MyDocumentBuilder(), 'input/xml.03.xml')->getResult(); $this->assertEquals(normalize_html_file('output/xml.03.xml'), normalize_html($builder->result)); $this->assertEquals(3, $builder->elementStarts); $this->assertEquals(3, $builder->elementCloses); // a '<' character withing some text data make the parser call 2 times // the onElementData() method $this->assertEquals(7, $builder->datas); }