* @author Kornel LesiƄski * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License * @version SVN: $Id: GetTextTest.php 888 2010-06-08 09:48:33Z kornel $ * @link http://phptal.org/ */ class GetTextTest extends PHPTAL_TestCase { private function getTextTranslator() { try { return new PHPTAL_GetTextTranslator(); } catch(PHPTAL_Exception $e) { $this->markTestSkipped($e->getMessage()); } } function testSimple() { $gettext = $this->getTextTranslator(); $gettext->setLanguage('en_GB', 'en_GB.utf8'); $gettext->addDomain('test'); $gettext->useDomain('test'); $tpl = $this->newPHPTAL('input/gettext.01.html'); $tpl->setTranslator($gettext); $res = normalize_html($tpl->execute()); $exp = normalize_html_file('output/gettext.01.html'); $this->assertEquals($exp, $res); } function testLang() { $gettext = $this->getTextTranslator(); $gettext->setLanguage('fr_FR', 'fr_FR@euro', 'fr_FR.utf8'); $gettext->addDomain('test'); $gettext->useDomain('test'); $tpl = $this->newPHPTAL('input/gettext.02.html'); $tpl->setTranslator($gettext); $res = normalize_html($tpl->execute()); $exp = normalize_html_file('output/gettext.02.html'); $this->assertEquals($exp, $res); } function testInterpol() { $gettext = $this->getTextTranslator(); $gettext->setLanguage('fr_FR', 'fr_FR@euro', 'fr_FR.utf8'); $gettext->setEncoding('UTF-8'); $gettext->addDomain('test'); $gettext->useDomain('test'); $tpl = $this->newPHPTAL('input/gettext.03.html'); $tpl->setTranslator($gettext); $tpl->login = 'john'; $tpl->lastCxDate = '2004-12-25'; $res = normalize_html($tpl->execute()); $exp = normalize_html_file('output/gettext.03.html'); $this->assertEquals($exp, $res); } function testDomainChange() { $gettext = $this->getTextTranslator(); $gettext->setEncoding('UTF-8'); $gettext->setLanguage('fr_FR', 'fr_FR@euro', 'fr_FR.utf8'); $gettext->addDomain('test'); $gettext->addDomain('test2'); $gettext->useDomain('test'); $tpl = $this->newPHPTAL('input/gettext.04.html'); $tpl->setEncoding('UTF-8'); $tpl->setTranslator($gettext); $tpl->login = 'john'; $tpl->lastCxDate = '2004-12-25'; $res = normalize_html($tpl->execute()); $exp = normalize_html_file('output/gettext.04.html'); $this->assertEquals($exp, $res); } function testSpaces() { $gettext = $this->getTextTranslator(); $gettext->setLanguage('en_GB', 'en_GB.utf8'); $gettext->addDomain('test'); $gettext->useDomain('test'); $tpl = $this->newPHPTAL('input/gettext.05.html'); $tpl->login = 'john smith'; $tpl->setTranslator($gettext); $res = normalize_html($tpl->execute()); $exp = normalize_html_file('output/gettext.05.html'); $this->assertEquals($exp, $res); } function testAccentuateKey() { $gettext = $this->getTextTranslator(); $gettext->setLanguage('en_GB', 'en_GB.utf8'); $gettext->addDomain('test'); $gettext->useDomain('test'); $gettext->setCanonicalize(true); $tpl = $this->newPHPTAL('input/gettext.06.html'); $tpl->setTranslator($gettext); $res = $tpl->execute(); $res = normalize_html($res); $exp = normalize_html_file('output/gettext.06.html'); $this->assertEquals($exp, $res); } function testAccentuateKeyNonCanonical() { $gettext = $this->getTextTranslator(); $gettext->setLanguage('en_GB', 'en_GB.utf8'); $gettext->addDomain('test'); $gettext->useDomain('test'); $tpl = $this->newPHPTAL('input/gettext.06.html'); $tpl->setTranslator($gettext); $res = $tpl->execute(); $res = normalize_html($res); $exp = normalize_html(' Not accentuated Accentuated key without canonicalization Accentuated key without canonicalization '); $this->assertEquals($exp, $res); } function testQuote() { $gettext = $this->getTextTranslator(); $gettext->setLanguage('en_GB', 'en_GB.utf8'); $gettext->addDomain('test'); $gettext->useDomain('test'); $tpl = $this->newPHPTAL('input/gettext.07.html'); $tpl->setTranslator($gettext); $res = $tpl->execute(); $res = normalize_html($res); $exp = normalize_html_file('output/gettext.07.html'); $this->assertEquals($exp, $res); } }