* @author Kornel LesiƄski * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License * @version SVN: $Id: GetTextTest.php 596 2009-05-02 18:05:35Z kornel $ * @link http://phptal.org/ */ require_once dirname(__FILE__)."/config.php"; PHPTAL::setIncludePath(); require_once 'PHPTAL/GetTextTranslator.php'; PHPTAL::restoreIncludePath(); 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 = trim_string($tpl->execute()); $exp = trim_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 = trim_string($tpl->execute()); $exp = trim_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 = trim_string($tpl->execute()); $exp = trim_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 = trim_string($tpl->execute()); $exp = trim_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 = trim_string($tpl->execute()); $exp = trim_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 = trim_string($res); $exp = trim_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 = trim_string($res); $exp = trim_string(' 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 = trim_string($res); $exp = trim_file('output/gettext.07.html'); $this->assertEquals($exp, $res); } }