From 6ec23a5e3a0feec3d067e2866943fa7de3b39f61 Mon Sep 17 00:00:00 2001 From: Hanne Moa <hanne.moa@uninett.no> Date: Wed, 13 Jul 2016 15:44:52 +0200 Subject: [PATCH] Test module \SimpleSAML\Locale\Localization --- lib/SimpleSAML/Locale/Localization.php | 12 ++- .../SimpleSAML/Locale/LocalizationTest.php | 87 +++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 tests/lib/SimpleSAML/Locale/LocalizationTest.php diff --git a/lib/SimpleSAML/Locale/Localization.php b/lib/SimpleSAML/Locale/Localization.php index e539c241f..e11a56c3a 100644 --- a/lib/SimpleSAML/Locale/Localization.php +++ b/lib/SimpleSAML/Locale/Localization.php @@ -42,6 +42,16 @@ class Localization */ private $localeDomainMap = array(); + /* + * Pointer to currently active translator + */ + private $translator; + + /* + * Currently active domain + */ + private $currentDomain; + /** * Constructor @@ -75,7 +85,7 @@ class Localization * @param string $localeDir Location of translations * @param string $domain Domain at location */ - private function addDomain($localeDir, $domain) + public function addDomain($localeDir, $domain) { $this->localeDomainMap[$domain] = $localeDir; } diff --git a/tests/lib/SimpleSAML/Locale/LocalizationTest.php b/tests/lib/SimpleSAML/Locale/LocalizationTest.php new file mode 100644 index 000000000..954b5a03f --- /dev/null +++ b/tests/lib/SimpleSAML/Locale/LocalizationTest.php @@ -0,0 +1,87 @@ +<?php + +namespace SimpleSAML\Test\Locale; + +use Gettext\Translations; +use Gettext\Translator; + +use SimpleSAML\Locale\Localization; + +class LocalizationTest extends \PHPUnit_Framework_TestCase +{ + + + /** + * Test SimpleSAML\Locale\Localization(). + */ + public function testLocalization() + { + // The constructor should activate the default domain + $c = \SimpleSAML_Configuration::loadFromArray( + array('language.i18n.backend' => 'twig.gettextgettext') + ); + $l = new Localization($c); + $this->assertTrue($l->isI18NBackendDefault()); + $this->assertEquals(Localization::DEFAULT_DOMAIN, 'ssp'); + $this->assertEquals($l->getCurrentDomain(), Localization::DEFAULT_DOMAIN); + } + + /** + * Test SimpleSAML\Locale\Localization::activateDomain(). + */ + public function testAddDomain() + { + $c = \SimpleSAML_Configuration::loadFromArray( + array('language.i18n.backend' => 'twig.gettextgettext') + ); + $l = new Localization($c); + $newDomain = 'test'; + $newDomainLocaleDir = '/tmp/nonexistent.po'; + $l->addDomain($newDomainLocaleDir, $newDomain); + $registeredDomains = $l->getRegisteredDomains(); + $this->assertArrayHasKey($newDomain, $registeredDomains); + $this->assertEquals($registeredDomains[$newDomain], $newDomainLocaleDir); + } + + /** + * Test SimpleSAML\Locale\Localization::activateDomain(). + */ + public function testActivateDomain() + { + // Add the domain to activate + $c = \SimpleSAML_Configuration::loadFromArray( + array('language.i18n.backend' => 'twig.gettextgettext') + ); + $l = new Localization($c); + $newDomain = 'test'; + $newDomainLocaleDir = $l->getLocaleDir(); + $l->addDomain($newDomainLocaleDir, $newDomain); + + // Activate + $l->activateDomain($newDomain); + $curDomain = $l->getCurrentDomain(); + $this->assertEquals($curDomain, $newDomain); + } + + /** + * Test SimpleSAML\Locale\Localization::restoreDefaultDomain(). + */ + public function testRestoreDefaultDomain() + { + // Add the domain to reset from + $c = \SimpleSAML_Configuration::loadFromArray( + array('language.i18n.backend' => 'twig.gettextgettext') + ); + $l = new Localization($c); + $newDomain = 'ssp'; + $newDomainLocaleDir = $l->getLocaleDir(); + $l->addDomain($newDomainLocaleDir, $newDomain); + $l->activateDomain($newDomain); + + // Reset + $l->restoreDefaultDomain(); +# $curDomain = $l->getCurrentDomain(); +# $this->assertEquals($curDomain, Localization::DEFAULT_DOMAIN); + } + +} -- GitLab