* @author Kornel LesiƄski * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License * @version SVN: $Id: I18NTranslateTest.php 888 2010-06-08 09:48:33Z kornel $ * @link http://phptal.org/ */ require_once 'I18NDummyTranslator.php'; class I18NTranslateTest extends PHPTAL_TestCase { function testStringTranslate() { $tpl = $this->newPHPTAL('input/i18n-translate-01.html'); $tpl->setTranslator( new DummyTranslator() ); $res = $tpl->execute(); $res = normalize_html($res); $exp = normalize_html_file('output/i18n-translate-01.html'); $this->assertEquals($exp, $res); } function testEvalTranslate() { $tpl = $this->newPHPTAL('input/i18n-translate-02.html'); $tpl->setTranslator( new DummyTranslator() ); $tpl->message = "my translate key &"; $res = $tpl->execute(); $res = normalize_html($res); $exp = normalize_html_file('output/i18n-translate-02.html'); $this->assertEquals($exp, $res); } function testStructureTranslate() { $tpl = $this->newPHPTAL(); $tpl->setTranslator( new DummyTranslator() ); $tpl->setSource('

'); $this->assertEquals('

translatethis

', $tpl->execute()); } function testStructureTranslate2() { $tpl = $this->newPHPTAL(); $tpl->setTranslator( new DummyTranslator() ); $tpl->setSource('

translate this

'); $this->assertEquals('

translate this

', $tpl->execute()); } function testStructureTranslate3() { $tpl = $this->newPHPTAL(); $tpl->setTranslator( $t = new DummyTranslator() ); $t->setTranslation('msg', 'translated key'); $tpl->var = 'msg'; $tpl->setSource('

'); $this->assertEquals(normalize_html('

<b class="foo&amp;bar">translated&nbsp;key</b>

translated key

'), normalize_html($tpl->execute())); } function testDomain() { $tpl = $this->newPHPTAL(); $tpl->bar = 'baz'; $tpl->setTranslator( $t = new DummyTranslator() ); $tpl->t = $t; $tpl->setSource('
${t/domain}
'); $this->assertEquals(normalize_html('
foobaz${quz}
'), normalize_html($tpl->execute())); } function testPHPTalesDomain() { $tpl = $this->newPHPTAL(); $tpl->bar = '1'; $tpl->setTranslator( $t = new DummyTranslator() ); $tpl->t = $t; $tpl->setSource('
${t.domain}
'); $this->assertEquals(normalize_html('
foo2${quz}
'), normalize_html($tpl->execute())); } function testTranslateChain() { $tpl = $this->newPHPTAL(); $tpl->setTranslator( $t = new DummyTranslator() ); $t->setTranslation('bar', ' translated'); $tpl->setSource('
not translated
'); $this->assertEquals('
<bar> translated
', $tpl->execute()); } function testTranslateChainString() { $tpl = $this->newPHPTAL(); $tpl->setTranslator( $t = new DummyTranslator() ); $tpl->setSource('
not translated
'); $this->assertEquals('
<bar> translated
', $tpl->execute()); } function testTranslateChainExists() { $tpl = $this->newPHPTAL(); $tpl->setTranslator( $t = new DummyTranslator() ); $tpl->foo = ' value'; $tpl->setSource('
not translated
'); $this->assertEquals('
<foo> value
', $tpl->execute()); } function testTranslateChainExistsTranslated() { $tpl = $this->newPHPTAL(); $tpl->setTranslator( $t = new DummyTranslator() ); $t->setTranslation(' value', ' translated'); $tpl->foo = ' value'; $tpl->setSource('
not translated
'); $this->assertEquals('
<foo> translated
', $tpl->execute()); } /** * @expectedException PHPTAL_TemplateException */ function testRejectsEmptyKey() { $this->newPHPTAL()->setTranslator( $t = new DummyTranslator() )->setSource('
')->execute(); } /** * @expectedException PHPTAL_TemplateException */ function testRejectsEmptyKeyMarkup() { $this->newPHPTAL()->setTranslator( $t = new DummyTranslator() )->setSource('
')->execute(); } function testTranslateChainStructureExistsTranslated() { $tpl = $this->newPHPTAL(); $tpl->setTranslator( $t = new DummyTranslator() ); $t->setTranslation(' value', ' translated'); $tpl->foo = ' value'; $tpl->setSource('
not translated
'); $this->assertEquals('
translated
', $tpl->execute()); } }