Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
 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());
     }
 }
Ejemplo n.º 3
0
 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);
 }