OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <body> | 3 <body> |
4 <script src="../resources/testharness.js"></script> | 4 <script src="../resources/testharness.js"></script> |
5 <script src="../resources/testharnessreport.js"></script> | 5 <script src="../resources/testharnessreport.js"></script> |
6 <script> | 6 <script> |
7 | 7 |
8 test(function() { | 8 test(function() { |
9 assert_true('language' in window.navigator); | 9 assert_true('language' in window.navigator); |
10 assert_false('languages' in window.navigator); | 10 assert_true('languages' in window.navigator); |
11 assert_true('onlanguagechange' in window); | 11 assert_true('onlanguagechange' in window); |
12 }, "Test that NavigatorLanguage API is present in window"); | 12 }, "Test that NavigatorLanguage API is present in window"); |
13 | 13 |
14 test(function() { | 14 test(function() { |
15 var received = false; | 15 var received = false; |
16 window.onlanguagechange = function() { | 16 window.onlanguagechange = function() { |
17 received = true; | 17 received = true; |
18 } | 18 } |
19 | 19 |
20 window.testRunner.setAcceptLanguages('klingon'); | 20 window.testRunner.setAcceptLanguages('klingon'); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 | 79 |
80 test(function() { | 80 test(function() { |
81 window.addEventListener('languagechange', function(e) { | 81 window.addEventListener('languagechange', function(e) { |
82 assert_false(e.cancelable); | 82 assert_false(e.cancelable); |
83 assert_false(e.bubbles); | 83 assert_false(e.bubbles); |
84 }); | 84 }); |
85 | 85 |
86 window.testRunner.setAcceptLanguages('klingon'); | 86 window.testRunner.setAcceptLanguages('klingon'); |
87 }, "Test properties of the fired event."); | 87 }, "Test properties of the fired event."); |
88 | 88 |
| 89 test(function() { |
| 90 var testValues = [ |
| 91 { accept_languages: 'foo', language: 'foo', languages: ['foo'] }, |
| 92 { accept_languages: '', language: '', languages: [] }, |
| 93 { accept_languages: 'foo,bar', language: 'foo', languages: [ 'foo', 'bar
' ] }, |
| 94 { accept_languages: ' foo , bar ', language: 'foo', languages: [ 'foo',
'bar' ] }, |
| 95 { accept_languages: ' foo ; bar ', language: 'foo ; bar', languages: [
'foo ; bar' ] }, |
| 96 { accept_languages: '_foo_', language: '_foo_', languages: ['_foo_'] }, |
| 97 { accept_languages: 'en_', language: 'en-', languages: ['en-'] }, |
| 98 { accept_languages: 'en__', language: 'en-_', languages: ['en-_'] }, |
| 99 { accept_languages: 'en_US, fr_FR', language: 'en-US', languages: ['en-U
S', 'fr-FR'] }, |
| 100 { accept_languages: 'en_US_CA', language: 'en-US_CA', languages: ['en-US
_CA'] }, |
| 101 ]; |
| 102 |
| 103 var eventsCount = 0; |
| 104 window.onlanguagechange = function() { |
| 105 eventsCount++; |
| 106 } |
| 107 |
| 108 for (var i = 0; i < testValues.length; ++i) { |
| 109 var data = testValues[i]; |
| 110 |
| 111 window.testRunner.setAcceptLanguages(data.accept_languages); |
| 112 assert_equals(eventsCount, i + 1); |
| 113 |
| 114 assert_equals(navigator.languages.length, data.languages.length); |
| 115 // FIXME: test navigator.language |
| 116 for (var j = 0; j < navigator.languages.length; ++j) { |
| 117 assert_equals(navigator.languages[j], data.languages[j]); |
| 118 } |
| 119 } |
| 120 }, "Test that navigator.languages reflects the accept languages value."); |
| 121 |
| 122 test(function() { |
| 123 var previous = navigator.languages; |
| 124 assert_equals(navigator.languages, navigator.languages); |
| 125 assert_equals(navigator.languages, previous); |
| 126 |
| 127 window.testRunner.setAcceptLanguages('fr-FR'); |
| 128 assert_not_equals(navigator.languages, previous); |
| 129 }, "Test that navigator.languages caching behaviour."); |
| 130 |
89 </script> | 131 </script> |
90 </body> | 132 </body> |
91 </html> | 133 </html> |
OLD | NEW |