LanguageTest.php 1.5 KB

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