* @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);
}
}