* @author Kornel LesiĆski
* @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License
* @version SVN: $Id: SimpleGenerationTest.php 915 2010-06-20 21:05:04Z kornel $
* @link http://phptal.org/
*/
class SimpleGenerationTest extends PHPTAL_TestCase
{
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 = <<setXmlDeclaration('',false) ;?>
test document
test document
phptal
EOS;
// ignore debug
$result = preg_replace('!<\?php /\* tag ".*?" from line \d+ \*/; \?>!','', $result);
$result = preg_replace('!/\* tag ".*?" from line \d+ \*/ ;!','', $result);
$result = normalize_phpsource($result, true);
$expected = normalize_phpsource($expected, true);
$this->assertEquals($expected, $result);
}
function testFunctionsGeneration()
{
$state = new PHPTAL_Php_State($this->newPHPTAL());
$codewriter = new PHPTAL_Php_CodeWriter($state);
$codewriter->doFunction('test1', '$tpl');
$codewriter->pushHTML($codewriter->interpolateHTML('test1'));
$codewriter->doFunction('test2', '$tpl');
$codewriter->pushHTML('test2');
$codewriter->doEnd();
$codewriter->pushHTML('test1');
$codewriter->doEnd();
$res = $codewriter->getResult();
$exp = <<test2
test1test1
EOS;
$res = normalize_phpsource($res, true);
$exp = normalize_phpsource($exp, true);
$this->assertEquals($exp, $res);
}
}