* @author Kornel LesiƄski * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License * @version SVN: $Id: TalCommentTest.php 888 2010-06-08 09:48:33Z kornel $ * @link http://phptal.org/ */ class DummyPhpNode extends PHPTAL_Dom_Element { function __construct() {} function generateCode(PHPTAL_Php_CodeWriter $codewriter) {} } class TalCommentTest extends PHPTAL_TestCase { function setUp() { parent::setUp(); $state = new PHPTAL_Php_State($this->newPHPTAL()); $this->_gen = new PHPTAL_Php_CodeWriter($state); $this->_tag = new DummyPhpNode(); $this->_tag->codewriter = $this->_gen; } private function newComment($expr) { return $this->_att = new PHPTAL_Php_Attribute_TAL_Comment($this->_tag, $expr); } function testComment() { $this->newComment( 'my dummy comment'); $this->_att->before($this->_gen); $this->_att->after($this->_gen); $res = $this->_gen->getResult(); $this->assertEquals(normalize_phpsource(''), normalize_phpsource($res)); } function testMultiLineComment() { $comment = "my dummy comment\non more than one\nline"; $this->newComment($comment); $this->_att->before($this->_gen); $this->_att->after($this->_gen); $res = $this->_gen->getResult(); $this->assertEquals(normalize_phpsource(""), normalize_phpsource($res)); } function testTrickyComment() { $comment = "my dummy */ comment\non more than one\nline"; $this->newComment( $comment); $this->_att->before($this->_gen); $this->_att->after($this->_gen); $res = $this->_gen->getResult(); $comment = str_replace('*/', '* /', $comment); $this->assertEquals(normalize_phpsource(""), normalize_phpsource($res)); } function testInTemplate() { $tpl = $this->newPHPTAL('input/tal-comment.01.html'); $res = normalize_html($tpl->execute()); $exp = normalize_html_file('output/tal-comment.01.html'); $this->assertEquals($exp, $res); } function testMultilineInTemplate() { $tpl = $this->newPHPTAL('input/tal-comment.02.html'); $res = normalize_html($tpl->execute()); $exp = normalize_html_file('output/tal-comment.02.html'); $this->assertEquals($exp, $res); } private $_tag; private $_gen; private $_att; }