aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/L10N/L10nTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/L10N/L10nTest.php')
-rw-r--r--tests/lib/L10N/L10nTest.php121
1 files changed, 66 insertions, 55 deletions
diff --git a/tests/lib/L10N/L10nTest.php b/tests/lib/L10N/L10nTest.php
index f410c523c05..842f1bc5eda 100644
--- a/tests/lib/L10N/L10nTest.php
+++ b/tests/lib/L10N/L10nTest.php
@@ -1,9 +1,9 @@
<?php
+
/**
- * Copyright (c) 2016 Joas Schilling <nickvergessen@owncloud.com>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace Test\L10N;
@@ -11,9 +11,14 @@ namespace Test\L10N;
use DateTime;
use OC\L10N\Factory;
use OC\L10N\L10N;
+use OCP\App\IAppManager;
+use OCP\ICacheFactory;
use OCP\IConfig;
use OCP\IRequest;
use OCP\IUserSession;
+use OCP\L10N\IFactory;
+use OCP\Server;
+use OCP\Util;
use Test\TestCase;
/**
@@ -26,32 +31,34 @@ class L10nTest extends TestCase {
* @return Factory
*/
protected function getFactory() {
- /** @var \OCP\IConfig $config */
+ /** @var IConfig $config */
$config = $this->createMock(IConfig::class);
- /** @var \OCP\IRequest $request */
+ /** @var IRequest $request */
$request = $this->createMock(IRequest::class);
/** @var IUserSession $userSession */
$userSession = $this->createMock(IUserSession::class);
- return new Factory($config, $request, $userSession, \OC::$SERVERROOT);
+ $cacheFactory = $this->createMock(ICacheFactory::class);
+ $appManager = $this->createMock(IAppManager::class);
+ return new Factory($config, $request, $userSession, $cacheFactory, \OC::$SERVERROOT, $appManager);
}
public function testSimpleTranslationWithTrailingColon(): void {
- $transFile = \OC::$SERVERROOT.'/tests/data/l10n/de.json';
+ $transFile = \OC::$SERVERROOT . '/tests/data/l10n/de.json';
$l = new L10N($this->getFactory(), 'test', 'de', 'de_AT', [$transFile]);
$this->assertEquals('Files:', $l->t('Files:'));
}
- public function testGermanPluralTranslations() {
- $transFile = \OC::$SERVERROOT.'/tests/data/l10n/de.json';
+ public function testGermanPluralTranslations(): void {
+ $transFile = \OC::$SERVERROOT . '/tests/data/l10n/de.json';
$l = new L10N($this->getFactory(), 'test', 'de', 'de_AT', [$transFile]);
- $this->assertEquals('1 Datei', (string) $l->n('%n file', '%n files', 1));
- $this->assertEquals('2 Dateien', (string) $l->n('%n file', '%n files', 2));
+ $this->assertEquals('1 Datei', (string)$l->n('%n file', '%n files', 1));
+ $this->assertEquals('2 Dateien', (string)$l->n('%n file', '%n files', 2));
}
- public function testRussianPluralTranslations() {
- $transFile = \OC::$SERVERROOT.'/tests/data/l10n/ru.json';
+ public function testRussianPluralTranslations(): void {
+ $transFile = \OC::$SERVERROOT . '/tests/data/l10n/ru.json';
$l = new L10N($this->getFactory(), 'test', 'ru', 'ru_UA', [$transFile]);
$this->assertEquals('1 файл', (string)$l->n('%n file', '%n files', 1));
@@ -74,8 +81,8 @@ class L10nTest extends TestCase {
*/
}
- public function testCzechPluralTranslations() {
- $transFile = \OC::$SERVERROOT.'/tests/data/l10n/cs.json';
+ public function testCzechPluralTranslations(): void {
+ $transFile = \OC::$SERVERROOT . '/tests/data/l10n/cs.json';
$l = new L10N($this->getFactory(), 'test', 'cs', 'cs_CZ', [$transFile]);
$this->assertEquals('1 okno', (string)$l->n('%n window', '%n windows', 1));
@@ -83,7 +90,16 @@ class L10nTest extends TestCase {
$this->assertEquals('5 oken', (string)$l->n('%n window', '%n windows', 5));
}
- public function dataPlaceholders(): array {
+ public function testGermanPluralWithCzechLocaleTranslations(): void {
+ $transFile = \OC::$SERVERROOT . '/tests/data/l10n/de.json';
+ $l = new L10N($this->getFactory(), 'test', 'de', 'cs_CZ', [$transFile]);
+
+ $this->assertEquals('1 Datei', (string)$l->n('%n file', '%n files', 1));
+ $this->assertEquals('2 Dateien', (string)$l->n('%n file', '%n files', 2));
+ $this->assertEquals('5 Dateien', (string)$l->n('%n file', '%n files', 5));
+ }
+
+ public static function dataPlaceholders(): array {
return [
['Ordered placeholders one %s two %s', 'Placeholder one 1 two 2'],
['Reordered placeholders one %s two %s', 'Placeholder two 2 one 1'],
@@ -92,63 +108,61 @@ class L10nTest extends TestCase {
}
/**
- * @dataProvider dataPlaceholders
*
* @param $string
* @param $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataPlaceholders')]
public function testPlaceholders($string, $expected): void {
- $transFile = \OC::$SERVERROOT.'/tests/data/l10n/de.json';
+ $transFile = \OC::$SERVERROOT . '/tests/data/l10n/de.json';
$l = new L10N($this->getFactory(), 'test', 'de', 'de_AT', [$transFile]);
$this->assertEquals($expected, $l->t($string, ['1', '2']));
}
- public function localizationData() {
+ public static function localizationData(): array {
return [
// timestamp as string
- ['February 13, 2009 at 11:31:30 PM GMT+0', 'en', 'en_US', 'datetime', '1234567890'],
- ['13. Februar 2009 um 23:31:30 GMT+0', 'de', 'de_DE', 'datetime', '1234567890'],
+ ["February 13, 2009, 11:31:30\xE2\x80\xAFPM UTC", 'en', 'en_US', 'datetime', '1234567890'],
+ ['13. Februar 2009, 23:31:30 UTC', 'de', 'de_DE', 'datetime', '1234567890'],
['February 13, 2009', 'en', 'en_US', 'date', '1234567890'],
['13. Februar 2009', 'de', 'de_DE', 'date', '1234567890'],
- ['11:31:30 PM GMT+0', 'en', 'en_US', 'time', '1234567890'],
- ['23:31:30 GMT+0', 'de', 'de_DE', 'time', '1234567890'],
+ ["11:31:30\xE2\x80\xAFPM UTC", 'en', 'en_US', 'time', '1234567890'],
+ ['23:31:30 UTC', 'de', 'de_DE', 'time', '1234567890'],
// timestamp as int
- ['February 13, 2009 at 11:31:30 PM GMT+0', 'en', 'en_US', 'datetime', 1234567890],
- ['13. Februar 2009 um 23:31:30 GMT+0', 'de', 'de_DE', 'datetime', 1234567890],
+ ["February 13, 2009, 11:31:30\xE2\x80\xAFPM UTC", 'en', 'en_US', 'datetime', 1234567890],
+ ['13. Februar 2009, 23:31:30 UTC', 'de', 'de_DE', 'datetime', 1234567890],
['February 13, 2009', 'en', 'en_US', 'date', 1234567890],
['13. Februar 2009', 'de', 'de_DE', 'date', 1234567890],
- ['11:31:30 PM GMT+0', 'en', 'en_US', 'time', 1234567890],
- ['23:31:30 GMT+0', 'de', 'de_DE', 'time', 1234567890],
+ ["11:31:30\xE2\x80\xAFPM UTC", 'en', 'en_US', 'time', 1234567890],
+ ['23:31:30 UTC', 'de', 'de_DE', 'time', 1234567890],
// DateTime object
- ['February 13, 2009 at 11:31:30 PM GMT+0', 'en', 'en_US', 'datetime', new DateTime('@1234567890')],
- ['13. Februar 2009 um 23:31:30 GMT+0', 'de', 'de_DE', 'datetime', new DateTime('@1234567890')],
+ ["February 13, 2009, 11:31:30\xE2\x80\xAFPM GMT+0", 'en', 'en_US', 'datetime', new DateTime('@1234567890')],
+ ['13. Februar 2009, 23:31:30 GMT+0', 'de', 'de_DE', 'datetime', new DateTime('@1234567890')],
['February 13, 2009', 'en', 'en_US', 'date', new DateTime('@1234567890')],
['13. Februar 2009', 'de', 'de_DE', 'date', new DateTime('@1234567890')],
- ['11:31:30 PM GMT+0', 'en', 'en_US', 'time', new DateTime('@1234567890')],
+ ["11:31:30\xE2\x80\xAFPM GMT+0", 'en', 'en_US', 'time', new DateTime('@1234567890')],
['23:31:30 GMT+0', 'de', 'de_DE', 'time', new DateTime('@1234567890')],
// en_GB
- ['13 February 2009 at 23:31:30 GMT+0', 'en_GB', 'en_GB', 'datetime', new DateTime('@1234567890')],
+ ['13 February 2009, 23:31:30 GMT+0', 'en_GB', 'en_GB', 'datetime', new DateTime('@1234567890')],
['13 February 2009', 'en_GB', 'en_GB', 'date', new DateTime('@1234567890')],
['23:31:30 GMT+0', 'en_GB', 'en_GB', 'time', new DateTime('@1234567890')],
- ['13 February 2009 at 23:31:30 GMT+0', 'en-GB', 'en_GB', 'datetime', new DateTime('@1234567890')],
+ ['13 February 2009, 23:31:30 GMT+0', 'en-GB', 'en_GB', 'datetime', new DateTime('@1234567890')],
['13 February 2009', 'en-GB', 'en_GB', 'date', new DateTime('@1234567890')],
['23:31:30 GMT+0', 'en-GB', 'en_GB', 'time', new DateTime('@1234567890')],
];
}
- /**
- * @dataProvider localizationData
- */
- public function testNumericStringLocalization($expectedDate, $lang, $locale, $type, $value) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('localizationData')]
+ public function testNumericStringLocalization($expectedDate, $lang, $locale, $type, $value): void {
$l = new L10N($this->getFactory(), 'test', $lang, $locale, []);
$this->assertSame($expectedDate, $l->l($type, $value));
}
- public function firstDayData() {
+ public static function firstDayData(): array {
return [
[1, 'de', 'de_DE'],
[0, 'en', 'en_US'],
@@ -156,17 +170,17 @@ class L10nTest extends TestCase {
}
/**
- * @dataProvider firstDayData
* @param $expected
* @param $lang
* @param $locale
*/
- public function testFirstWeekDay($expected, $lang, $locale) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('firstDayData')]
+ public function testFirstWeekDay($expected, $lang, $locale): void {
$l = new L10N($this->getFactory(), 'test', $lang, $locale, []);
$this->assertSame($expected, $l->l('firstday', 'firstday'));
}
- public function jsDateData() {
+ public static function jsDateData(): array {
return [
['dd.MM.yy', 'de', 'de_DE'],
['M/d/yy', 'en', 'en_US'],
@@ -174,47 +188,44 @@ class L10nTest extends TestCase {
}
/**
- * @dataProvider jsDateData
* @param $expected
* @param $lang
* @param $locale
*/
- public function testJSDate($expected, $lang, $locale) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('jsDateData')]
+ public function testJSDate($expected, $lang, $locale): void {
$l = new L10N($this->getFactory(), 'test', $lang, $locale, []);
$this->assertSame($expected, $l->l('jsdate', 'jsdate'));
}
- public function testFactoryGetLanguageCode() {
+ public function testFactoryGetLanguageCode(): void {
$l = $this->getFactory()->get('lib', 'de');
$this->assertEquals('de', $l->getLanguageCode());
}
- public function testServiceGetLanguageCode() {
- $l = \OC::$server->getL10N('lib', 'de');
+ public function testServiceGetLanguageCode(): void {
+ $l = Util::getL10N('lib', 'de');
$this->assertEquals('de', $l->getLanguageCode());
}
- public function testWeekdayName() {
- $l = \OC::$server->getL10N('lib', 'de');
+ public function testWeekdayName(): void {
+ $l = Util::getL10N('lib', 'de');
$this->assertEquals('Mo.', $l->l('weekdayName', new \DateTime('2017-11-6'), ['width' => 'abbreviated']));
}
/**
- * @dataProvider findLanguageFromLocaleData
* @param $locale
* @param $language
*/
- public function testFindLanguageFromLocale($locale, $language) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('findLanguageFromLocaleData')]
+ public function testFindLanguageFromLocale($locale, $language): void {
$this->assertEquals(
$language,
- \OC::$server->getL10NFactory()->findLanguageFromLocale('lib', $locale)
+ Server::get(IFactory::class)->findLanguageFromLocale('lib', $locale)
);
}
- /**
- * @return array
- */
- public function findLanguageFromLocaleData(): array {
+ public static function findLanguageFromLocaleData(): array {
return [
'en_US' => ['en_US', 'en'],
'en_UK' => ['en_UK', 'en'],