]> git.mxchange.org Git - friendica.git/blob - tests/src/Core/L10nTest.php
Shorten "Configuration" to "Config" again, since the Wrapper is gone
[friendica.git] / tests / src / Core / L10nTest.php
1 <?php
2
3 namespace Friendica\Test\src\Core\L10n;
4
5 use Friendica\Core\L10n;
6 use Friendica\Test\MockedTest;
7
8 class L10nTest extends MockedTest
9 {
10         public function dataDetectLanguage()
11         {
12                 return [
13                         'empty'   => [
14                                 'server'  => [],
15                                 'get'     => [],
16                                 'default' => 'en',
17                                 'assert'  => 'en',
18                         ],
19                         'withGet' => [
20                                 'server'  => [],
21                                 'get'     => ['lang' => 'de'],
22                                 'default' => 'en',
23                                 'assert'  => 'de',
24                         ],
25                         'withPipe' => [
26                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'en-gb'],
27                                 'get'     => [],
28                                 'default' => 'en',
29                                 'assert'  => 'en-gb',
30                         ],
31                         'withoutPipe' => [
32                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr'],
33                                 'get'     => [],
34                                 'default' => 'en',
35                                 'assert'  => 'fr',
36                         ],
37                         'withQuality1' => [
38                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,de'],
39                                 'get'     => [],
40                                 'default' => 'en',
41                                 'assert'  => 'de',
42                         ],
43                         'withQuality2' => [
44                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,de;q=0.2'],
45                                 'get'     => [],
46                                 'default' => 'en',
47                                 'assert'  => 'fr',
48                         ],
49                         'withLangOverride' => [
50                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,de;q=0.2'],
51                                 'get'     => ['lang' => 'it'],
52                                 'default' => 'en',
53                                 'assert'  => 'it',
54                         ],
55                         'withQualityAndPipe' => [
56                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,de;q=0.2,nb-no;q=0.7'],
57                                 'get'     => [],
58                                 'default' => 'en',
59                                 'assert'  => 'nb-no',
60                         ],
61                         'withQualityAndInvalid' => [
62                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'fr;q=0.5,bla;q=0.2,nb-no;q=0.7'],
63                                 'get'     => [],
64                                 'default' => 'en',
65                                 'assert'  => 'nb-no',
66                         ],
67                         'withQualityAndInvalid2' => [
68                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'blu;q=0.9,bla;q=0.2,nb-no;q=0.7'],
69                                 'get'     => [],
70                                 'default' => 'en',
71                                 'assert'  => 'nb-no',
72                         ],
73                         'withQualityAndInvalidAndAbsolute' => [
74                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'blu;q=0.9,de,nb-no;q=0.7'],
75                                 'get'     => [],
76                                 'default' => 'en',
77                                 'assert'  => 'de',
78                         ],
79                         'withInvalidGet' => [
80                                 'server'  => ['HTTP_ACCEPT_LANGUAGE' => 'blu;q=0.9,nb-no;q=0.7'],
81                                 'get'     => ['lang' => 'blu'],
82                                 'default' => 'en',
83                                 'assert'  => 'nb-no',
84                         ],
85                 ];
86         }
87
88         /**
89          * @dataProvider dataDetectLanguage
90          */
91         public function testDetectLanguage(array $server, array $get, string $default, string $assert)
92         {
93                 $this->assertEquals($assert, L10n::detectLanguage($server, $get, $default));
94         }
95 }