Added support for language LDAP attribute

This commit is contained in:
Frederic Guillot
2016-05-07 18:05:33 -04:00
parent aac11a609c
commit 55ee906ba3
28 changed files with 400 additions and 258 deletions

View File

@@ -6,66 +6,6 @@ use Kanboard\Model\Config;
class ConfigTest extends Base
{
public function testGetTimezones()
{
$configModel = new Config($this->container);
$this->assertNotEmpty($configModel->getTimezones());
$this->assertArrayHasKey('Europe/Paris', $configModel->getTimezones());
$this->assertContains('Europe/Paris', $configModel->getTimezones());
$this->assertArrayNotHasKey('', $configModel->getTimezones());
$this->assertArrayHasKey('', $configModel->getTimezones(true));
$this->assertContains('Application default', $configModel->getTimezones(true));
}
public function testGetLanguages()
{
$configModel = new Config($this->container);
$this->assertNotEmpty($configModel->getLanguages());
$this->assertArrayHasKey('fr_FR', $configModel->getLanguages());
$this->assertContains('Français', $configModel->getLanguages());
$this->assertArrayNotHasKey('', $configModel->getLanguages());
$this->assertArrayHasKey('', $configModel->getLanguages(true));
$this->assertContains('Application default', $configModel->getLanguages(true));
}
public function testGetJsLanguage()
{
$configModel = new Config($this->container);
$this->assertEquals('en', $configModel->getJsLanguageCode());
$this->container['sessionStorage']->user = array('language' => 'fr_FR');
$this->assertEquals('fr', $configModel->getJsLanguageCode());
$this->container['sessionStorage']->user = array('language' => 'xx_XX');
$this->assertEquals('en', $configModel->getJsLanguageCode());
}
public function testGetCurrentLanguage()
{
$configModel = new Config($this->container);
$this->assertEquals('en_US', $configModel->getCurrentLanguage());
$this->container['sessionStorage']->user = array('language' => 'fr_FR');
$this->assertEquals('fr_FR', $configModel->getCurrentLanguage());
$this->container['sessionStorage']->user = array('language' => 'xx_XX');
$this->assertEquals('xx_XX', $configModel->getCurrentLanguage());
}
public function testGetCurrentTimezone()
{
$configModel = new Config($this->container);
$this->assertEquals('UTC', $configModel->getCurrentTimezone());
$this->container['sessionStorage']->user = array('timezone' => 'Europe/Paris');
$this->assertEquals('Europe/Paris', $configModel->getCurrentTimezone());
$this->container['sessionStorage']->user = array('timezone' => 'Something');
$this->assertEquals('Something', $configModel->getCurrentTimezone());
}
public function testRegenerateToken()
{
$configModel = new Config($this->container);

View File

@@ -0,0 +1,58 @@
<?php
use Kanboard\Model\Language;
require_once __DIR__.'/../Base.php';
class LanguageTest extends Base
{
public function testGetCodes()
{
$codes = Language::getCodes();
$this->assertContains('fr_FR', $codes);
$this->assertContains('en_US', $codes);
}
public function testFindCode()
{
$this->assertSame('', Language::findCode('xx-XX'));
$this->assertSame('fr_FR', Language::findCode('fr-FR'));
$this->assertSame('en_US', Language::findCode('en-US'));
}
public function testGetJsLanguage()
{
$languageModel = new Language($this->container);
$this->assertEquals('en', $languageModel->getJsLanguageCode());
$this->container['sessionStorage']->user = array('language' => 'fr_FR');
$this->assertEquals('fr', $languageModel->getJsLanguageCode());
$this->container['sessionStorage']->user = array('language' => 'xx_XX');
$this->assertEquals('en', $languageModel->getJsLanguageCode());
}
public function testGetCurrentLanguage()
{
$languageModel = new Language($this->container);
$this->assertEquals('en_US', $languageModel->getCurrentLanguage());
$this->container['sessionStorage']->user = array('language' => 'fr_FR');
$this->assertEquals('fr_FR', $languageModel->getCurrentLanguage());
$this->container['sessionStorage']->user = array('language' => 'xx_XX');
$this->assertEquals('xx_XX', $languageModel->getCurrentLanguage());
}
public function testGetLanguages()
{
$languageModel = new Language($this->container);
$this->assertNotEmpty($languageModel->getLanguages());
$this->assertArrayHasKey('fr_FR', $languageModel->getLanguages());
$this->assertContains('Français', $languageModel->getLanguages());
$this->assertArrayNotHasKey('', $languageModel->getLanguages());
$this->assertArrayHasKey('', $languageModel->getLanguages(true));
$this->assertContains('Application default', $languageModel->getLanguages(true));
}
}

View File

@@ -15,10 +15,10 @@ class ProjectTest extends Base
{
public function testCreationForAllLanguages()
{
$c = new Config($this->container);
$p = new Project($this->container);
foreach ($c->getLanguages() as $locale => $language) {
foreach ($this->container['language']->getLanguages() as $locale => $language) {
Translator::unload();
Translator::load($locale);
$this->assertNotFalse($p->create(array('name' => 'UnitTest '.$locale)), 'Unable to create project with '.$locale.':'.$language);
}

View File

@@ -0,0 +1,32 @@
<?php
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Timezone;
class TimezoneTest extends Base
{
public function testGetTimezones()
{
$timezoneModel = new Timezone($this->container);
$this->assertNotEmpty($timezoneModel->getTimezones());
$this->assertArrayHasKey('Europe/Paris', $timezoneModel->getTimezones());
$this->assertContains('Europe/Paris', $timezoneModel->getTimezones());
$this->assertArrayNotHasKey('', $timezoneModel->getTimezones());
$this->assertArrayHasKey('', $timezoneModel->getTimezones(true));
$this->assertContains('Application default', $timezoneModel->getTimezones(true));
}
public function testGetCurrentTimezone()
{
$timezoneModel = new Timezone($this->container);
$this->assertEquals('UTC', $timezoneModel->getCurrentTimezone());
$this->container['sessionStorage']->user = array('timezone' => 'Europe/Paris');
$this->assertEquals('Europe/Paris', $timezoneModel->getCurrentTimezone());
$this->container['sessionStorage']->user = array('timezone' => 'Something');
$this->assertEquals('Something', $timezoneModel->getCurrentTimezone());
}
}