|
|
@@ -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() { |