diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2018-05-23 23:45:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-23 23:45:24 +0200 |
commit | 84482eb25a16dd381908efa7c064eb5f3fbfe0b5 (patch) | |
tree | fdf15e913dc297332bf3b1d3236182d69358434b | |
parent | 6b6d522969c6f7613c8f897517d172de3d9646a4 (diff) | |
parent | 4286e17777433caac06859c744ff3f3fbbf95e8b (diff) | |
download | nextcloud-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.php | 5 | ||||
-rw-r--r-- | tests/lib/L10N/FactoryTest.php | 50 |
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 * |