From 9f3d9b5b239b9ebb3ddfec1c9d2d8d2a54be8f2a Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 7 Apr 2017 10:52:17 +0200 Subject: Don't force the use of Accept-Language anymore This is not intended anymore, since it falls back to force english when the header is not set. Also 0228bc6e66cbcb2848eacb41f1de6e7f63ebcb65 makes clear that the order should be: 1. User setting 2. Accept language 3. Admin default This is the case since the commit from above, unless via OCS and DAV. Both forced to accept-language falling back to english. By removing the force, it now also matches the w3 priority list: https://www.w3.org/International/questions/qa-lang-priorities Signed-off-by: Joas Schilling --- tests/lib/L10N/FactoryTest.php | 48 +++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 26 deletions(-) (limited to 'tests') diff --git a/tests/lib/L10N/FactoryTest.php b/tests/lib/L10N/FactoryTest.php index 5e422758cb4..77a56b5f945 100644 --- a/tests/lib/L10N/FactoryTest.php +++ b/tests/lib/L10N/FactoryTest.php @@ -9,6 +9,7 @@ namespace Test\L10N; use OC\L10N\Factory; +use OC\L10N\LanguageNotFoundException; use OCP\IConfig; use OCP\IRequest; use OCP\IUser; @@ -339,26 +340,22 @@ class FactoryTest extends TestCase { public function dataSetLanguageFromRequest() { return [ // Language is available - [null, 'de', null, ['de'], 'de', 'de'], - [null, 'de,en', null, ['de'], 'de', 'de'], - [null, 'de-DE,en-US;q=0.8,en;q=0.6', null, ['de'], 'de', 'de'], + [null, 'de', ['de'], 'de'], + [null, 'de,en', ['de'], 'de'], + [null, 'de-DE,en-US;q=0.8,en;q=0.6', ['de'], 'de'], // Language is not available - [null, 'de', null, ['ru'], 'en', 'en'], - [null, 'de,en', null, ['ru', 'en'], 'en', 'en'], - [null, 'de-DE,en-US;q=0.8,en;q=0.6', null, ['ru', 'en'], 'en', 'en'], - // Language is available, but request language is set - [null, 'de', 'ru', ['de'], 'de', 'ru'], - [null, 'de,en', 'ru', ['de'], 'de', 'ru'], - [null, 'de-DE,en-US;q=0.8,en;q=0.6', 'ru', ['de'], 'de', 'ru'], - - // Request lang should not be set for apps: Language is available - ['files_pdfviewer', 'de', null, ['de'], 'de', ''], - ['files_pdfviewer', 'de,en', null, ['de'], 'de', ''], - ['files_pdfviewer', 'de-DE,en-US;q=0.8,en;q=0.6', null, ['de'], 'de', ''], - // Request lang should not be set for apps: Language is not available - ['files_pdfviewer', 'de', null, ['ru'], 'en', ''], - ['files_pdfviewer', 'de,en', null, ['ru', 'en'], 'en', ''], - ['files_pdfviewer', 'de-DE,en-US;q=0.8,en;q=0.6', null, ['ru', 'en'], 'en', ''], + [null, 'de', ['ru'], new LanguageNotFoundException()], + [null, 'de,en', ['ru', 'en'], 'en'], + [null, 'de-DE,en-US;q=0.8,en;q=0.6', ['ru', 'en'], 'en'], + + // Language for app + ['files_pdfviewer', 'de', ['de'], 'de'], + ['files_pdfviewer', 'de,en', ['de'], 'de'], + ['files_pdfviewer', 'de-DE,en-US;q=0.8,en;q=0.6', ['de'], 'de'], + // Language for app is not available + ['files_pdfviewer', 'de', ['ru'], new LanguageNotFoundException()], + ['files_pdfviewer', 'de,en', ['ru', 'en'], 'en'], + ['files_pdfviewer', 'de-DE,en-US;q=0.8,en;q=0.6', ['ru', 'en'], 'en'], ]; } @@ -367,12 +364,10 @@ class FactoryTest extends TestCase { * * @param string|null $app * @param string $header - * @param string|null $requestLanguage * @param string[] $availableLanguages * @param string $expected - * @param string $expectedLang */ - public function testSetLanguageFromRequest($app, $header, $requestLanguage, array $availableLanguages, $expected, $expectedLang) { + public function testGetLanguageFromRequest($app, $header, array $availableLanguages, $expected) { $factory = $this->getFactory(['findAvailableLanguages']); $factory->expects($this->once()) ->method('findAvailableLanguages') @@ -384,11 +379,12 @@ class FactoryTest extends TestCase { ->with('ACCEPT_LANGUAGE') ->willReturn($header); - if ($requestLanguage !== null) { - $this->invokePrivate($factory, 'requestLanguage', [$requestLanguage]); + if ($expected instanceof LanguageNotFoundException) { + $this->setExpectedException(LanguageNotFoundException::class); + self::invokePrivate($factory, 'getLanguageFromRequest', [$app]); + } else { + $this->assertSame($expected, self::invokePrivate($factory, 'getLanguageFromRequest', [$app]), 'Asserting returned language'); } - $this->assertSame($expected, $factory->setLanguageFromRequest($app), 'Asserting returned language'); - $this->assertSame($expectedLang, $this->invokePrivate($factory, 'requestLanguage'), 'Asserting stored language'); } public function dataGetL10nFilesForApp() { -- cgit v1.2.3