summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2018-05-23 23:45:24 +0200
committerGitHub <noreply@github.com>2018-05-23 23:45:24 +0200
commit84482eb25a16dd381908efa7c064eb5f3fbfe0b5 (patch)
treefdf15e913dc297332bf3b1d3236182d69358434b
parent6b6d522969c6f7613c8f897517d172de3d9646a4 (diff)
parent4286e17777433caac06859c744ff3f3fbbf95e8b (diff)
downloadnextcloud-server-84482eb25a16dd381908efa7c064eb5f3fbfe0b5.tar.gz
nextcloud-server-84482eb25a16dd381908efa7c064eb5f3fbfe0b5.zip
Merge pull request #9435 from nextcloud/bugfix/noid/fix_force_language_html_attr
make sure force language is reflected in html lang attribute
-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
*