summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/L10N/Factory.php5
-rw-r--r--tests/lib/L10N/FactoryTest.php50
2 files changed, 48 insertions, 7 deletions
diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php
index 759340a63c3..e8a734f412c 100644
--- a/lib/private/L10N/Factory.php
+++ b/lib/private/L10N/Factory.php
@@ -131,6 +131,11 @@ class Factory implements IFactory {
* @return string language If nothing works it returns 'en'
*/
public function findLanguage($app = null) {
+ $forceLang = $this->config->getSystemValue('force_language', false);
+ if (is_string($forceLang)) {
+ $this->requestLanguage = $forceLang;
+ }
+
if ($this->requestLanguage !== '' && $this->languageExists($app, $this->requestLanguage)) {
return $this->requestLanguage;
}
diff --git a/tests/lib/L10N/FactoryTest.php b/tests/lib/L10N/FactoryTest.php
index 1e5c2ef5421..3008e0a239c 100644
--- a/tests/lib/L10N/FactoryTest.php
+++ b/tests/lib/L10N/FactoryTest.php
@@ -117,7 +117,12 @@ class FactoryTest extends TestCase {
->with('MyApp', 'de')
->willReturn(false);
$this->config
- ->expects($this->once())
+ ->expects($this->at(0))
+ ->method('getSystemValue')
+ ->with('force_language', false)
+ ->willReturn(false);
+ $this->config
+ ->expects($this->at(1))
->method('getSystemValue')
->with('installed', false)
->willReturn(true);
@@ -151,7 +156,12 @@ class FactoryTest extends TestCase {
->with('MyApp', 'de')
->willReturn(false);
$this->config
- ->expects($this->at(0))
+ ->expects($this->at(0))
+ ->method('getSystemValue')
+ ->with('force_language', false)
+ ->willReturn(false);
+ $this->config
+ ->expects($this->at(1))
->method('getSystemValue')
->with('installed', false)
->willReturn(true);
@@ -174,7 +184,7 @@ class FactoryTest extends TestCase {
->with('MyApp', 'jp')
->willReturn(false);
$this->config
- ->expects($this->at(2))
+ ->expects($this->at(3))
->method('getSystemValue')
->with('default_language', false)
->willReturn('es');
@@ -194,7 +204,12 @@ class FactoryTest extends TestCase {
->with('MyApp', 'de')
->willReturn(false);
$this->config
- ->expects($this->at(0))
+ ->expects($this->at(0))
+ ->method('getSystemValue')
+ ->with('force_language', false)
+ ->willReturn(false);
+ $this->config
+ ->expects($this->at(1))
->method('getSystemValue')
->with('installed', false)
->willReturn(true);
@@ -217,7 +232,7 @@ class FactoryTest extends TestCase {
->with('MyApp', 'jp')
->willReturn(false);
$this->config
- ->expects($this->at(2))
+ ->expects($this->at(3))
->method('getSystemValue')
->with('default_language', false)
->willReturn('es');
@@ -240,7 +255,12 @@ class FactoryTest extends TestCase {
->with('MyApp', 'de')
->willReturn(false);
$this->config
- ->expects($this->at(0))
+ ->expects($this->at(0))
+ ->method('getSystemValue')
+ ->with('force_language', false)
+ ->willReturn(false);
+ $this->config
+ ->expects($this->at(1))
->method('getSystemValue')
->with('installed', false)
->willReturn(true);
@@ -263,7 +283,7 @@ class FactoryTest extends TestCase {
->with('MyApp', 'jp')
->willReturn(false);
$this->config
- ->expects($this->at(2))
+ ->expects($this->at(3))
->method('getSystemValue')
->with('default_language', false)
->willReturn('es');
@@ -280,6 +300,22 @@ class FactoryTest extends TestCase {
$this->assertSame('en', $factory->findLanguage('MyApp'));
}
+ public function testFindLanguageWithForcedLanguage() {
+ $factory = $this->getFactory(['languageExists']);
+ $this->config
+ ->expects($this->at(0))
+ ->method('getSystemValue')
+ ->with('force_language', false)
+ ->willReturn('de');
+
+ $factory->expects($this->once())
+ ->method('languageExists')
+ ->with('MyApp', 'de')
+ ->willReturn(true);
+
+ $this->assertSame('de', $factory->findLanguage('MyApp'));
+ }
+
/**
* @dataProvider dataFindAvailableLanguages
*