]> git.mxchange.org Git - friendica.git/blob - tests/src/Core/L10nTest.php
Fix PSR-0 for test classes
[friendica.git] / tests / src / Core / L10nTest.php
1 <?php
2 /**
3  * @copyright Copyright (C) 2020, Friendica
4  *
5  * @license GNU AGPL version 3 or any later version
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Affero General Public License as
9  * published by the Free Software Foundation, either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Affero General Public License for more details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19  *
20  */
21
22 namespace Friendica\Test\src\Core;
23
24 use Friendica\Core\L10n;
25 use Friendica\Test\MockedTest;
26
27 class L10nTest extends MockedTest
28 {
29         public function dataDetectLanguage()
30         {
31                 return [
32                         'empty'   => [
33                                 'server'  => [],
34                                 'get'     => [],
35                                 'default' => 'en',
36                                 'assert'  => 'en',
37                         ],
38                         'withGet' => [
39                                 'server'  => [],
40                                 'get'     => ['lang' => 'de'],
41                                 'default' => 'en',
42                                 'assert'  => 'de',
43                         ],
44                         'withPipe' => [
45                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'en-gb'],
46                                 'get'     => [],
47                                 'default' => 'en',
48                                 'assert'  => 'en-gb',
49                         ],
50                         'withoutPipe' => [
51                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr'],
52                                 'get'     => [],
53                                 'default' => 'en',
54                                 'assert'  => 'fr',
55                         ],
56                         'withQuality1' => [
57                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,de'],
58                                 'get'     => [],
59                                 'default' => 'en',
60                                 'assert'  => 'de',
61                         ],
62                         'withQuality2' => [
63                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,de;q=0.2'],
64                                 'get'     => [],
65                                 'default' => 'en',
66                                 'assert'  => 'fr',
67                         ],
68                         'withLangOverride' => [
69                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,de;q=0.2'],
70                                 'get'     => ['lang' => 'it'],
71                                 'default' => 'en',
72                                 'assert'  => 'it',
73                         ],
74                         'withQualityAndPipe' => [
75                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,de;q=0.2,nb-no;q=0.7'],
76                                 'get'     => [],
77                                 'default' => 'en',
78                                 'assert'  => 'nb-no',
79                         ],
80                         'withQualityAndInvalid' => [
81                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,bla;q=0.2,nb-no;q=0.7'],
82                                 'get'     => [],
83                                 'default' => 'en',
84                                 'assert'  => 'nb-no',
85                         ],
86                         'withQualityAndInvalid2' => [
87                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'blu;q=0.9,bla;q=0.2,nb-no;q=0.7'],
88                                 'get'     => [],
89                                 'default' => 'en',
90                                 'assert'  => 'nb-no',
91                         ],
92                         'withQualityAndInvalidAndAbsolute' => [
93                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'blu;q=0.9,de,nb-no;q=0.7'],
94                                 'get'     => [],
95                                 'default' => 'en',
96                                 'assert'  => 'de',
97                         ],
98                         'withInvalidGet' => [
99                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'blu;q=0.9,nb-no;q=0.7'],
100                                 'get'     => ['lang' => 'blu'],
101                                 'default' => 'en',
102                                 'assert'  => 'nb-no',
103                         ],
104                 ];
105         }
106
107         /**
108          * @dataProvider dataDetectLanguage
109          */
110         public function testDetectLanguage(array $server, array $get, string $default, string $assert)
111         {
112                 $this->assertEquals($assert, L10n::detectLanguage($server, $get, $default));
113         }
114 }