LanguageTest.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace Tools\Test\TestCase\Utility;
  3. use Tools\TestSuite\TestCase;
  4. use Tools\Utility\Language;
  5. class LanguageTest extends TestCase {
  6. /**
  7. * @return void
  8. */
  9. public function setUp() {
  10. parent::setUp();
  11. $_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4';
  12. }
  13. /**
  14. * LanguageTest::testAll()
  15. *
  16. * @return void
  17. */
  18. public function testParseLanguageListEmpty() {
  19. $_SERVER['HTTP_ACCEPT_LANGUAGE'] = '';
  20. $res = Language::parseLanguageList();
  21. $this->assertSame([], $res);
  22. }
  23. /**
  24. * LanguageTest::testParseLanguageList()
  25. *
  26. * @return void
  27. */
  28. public function testParseLanguageList() {
  29. $res = Language::parseLanguageList();
  30. $expected = [
  31. '1.0' => [
  32. 'de-de'
  33. ],
  34. '0.8' => [
  35. 'de'
  36. ],
  37. '0.6' => [
  38. 'en-us'
  39. ],
  40. '0.4' => [
  41. 'en'
  42. ]
  43. ];
  44. $this->assertSame($expected, $res);
  45. $res = Language::parseLanguageList($_SERVER['HTTP_ACCEPT_LANGUAGE'], false);
  46. $expected = [
  47. '1.0' => [
  48. 'de-DE'
  49. ],
  50. '0.8' => [
  51. 'de'
  52. ],
  53. '0.6' => [
  54. 'en-US'
  55. ],
  56. '0.4' => [
  57. 'en'
  58. ]
  59. ];
  60. $this->assertSame($expected, $res);
  61. }
  62. /**
  63. * LanguageTest::testFindMatches()
  64. *
  65. * @return void
  66. */
  67. public function testFindMatches() {
  68. $res = Language::findMatches([]);
  69. $this->assertSame([], $res);
  70. $res = Language::findMatches(['de', 'en']);
  71. $expected = [
  72. '1.0' => [
  73. 'de-de'
  74. ],
  75. '0.8' => [
  76. 'de'
  77. ],
  78. '0.6' => [
  79. 'en-us'
  80. ],
  81. '0.4' => [
  82. 'en'
  83. ]
  84. ];
  85. $this->assertSame($expected, $res);
  86. $res = Language::findMatches(['de']);
  87. $expected = [
  88. '1.0' => [
  89. 'de-de'
  90. ],
  91. '0.8' => [
  92. 'de'
  93. ]
  94. ];
  95. $this->assertSame($expected, $res);
  96. $res = Language::findMatches(['cs', 'en']);
  97. $expected = [
  98. '0.6' => [
  99. 'en-us'
  100. ],
  101. '0.4' => [
  102. 'en'
  103. ]
  104. ];
  105. $this->assertSame($expected, $res);
  106. }
  107. }