Chromium Code Reviews| Index: LayoutTests/navigator_language/navigator_language.html |
| diff --git a/LayoutTests/navigator_language/navigator_language.html b/LayoutTests/navigator_language/navigator_language.html |
| index 213552ff03843afc2e48a9f08cdc667c1abc1169..3121010e3d1991e5d3767729661f9f4aa4e81941 100644 |
| --- a/LayoutTests/navigator_language/navigator_language.html |
| +++ b/LayoutTests/navigator_language/navigator_language.html |
| @@ -7,7 +7,7 @@ |
| test(function() { |
| assert_true('language' in window.navigator); |
| - assert_false('languages' in window.navigator); |
| + assert_true('languages' in window.navigator); |
| assert_true('onlanguagechange' in window); |
| }, "Test that NavigatorLanguage API is present in window"); |
| @@ -86,6 +86,48 @@ test(function() { |
| window.testRunner.setAcceptLanguages('klingon'); |
| }, "Test properties of the fired event."); |
| +test(function() { |
| + var testValues = [ |
|
jochen (gone - plz use gerrit)
2014/05/21 09:10:40
the entire file violates coding style by using 2 s
mlamouri (slow - plz ping)
2014/05/21 16:45:55
Done.
|
| + { accept_languages: 'foo', language: 'foo', languages: ['foo'] }, |
| + { accept_languages: '', language: '', languages: [] }, |
| + { accept_languages: 'foo,bar', language: 'foo', languages: [ 'foo', 'bar' ] }, |
| + { accept_languages: ' foo , bar ', language: 'foo', languages: [ 'foo', 'bar' ] }, |
| + { accept_languages: ' foo ; bar ', language: 'foo ; bar', languages: [ 'foo ; bar' ] }, |
| + { accept_languages: '_foo_', language: '_foo_', languages: ['_foo_'] }, |
| + { accept_languages: 'en_', language: 'en-', languages: ['en-'] }, |
| + { accept_languages: 'en__', language: 'en-_', languages: ['en-_'] }, |
|
jochen (gone - plz use gerrit)
2014/05/21 09:10:40
is en__ a valid language? It seems to be a bit odd
mlamouri (slow - plz ping)
2014/05/21 16:45:55
This isn't intending to validate the language pass
|
| + { accept_languages: 'en_US, fr_FR', language: 'en-US', languages: ['en-US', 'fr-FR'] }, |
| + { accept_languages: 'en_US_CA', language: 'en-US_CA', languages: ['en-US_CA'] }, |
| + ]; |
| + |
| + var eventsCount = 0; |
| + window.onlanguagechange = function() { |
| + eventsCount++; |
| + } |
| + |
| + for (var i = 0; i < testValues.length; ++i) { |
| + var data = testValues[i]; |
| + |
| + window.testRunner.setAcceptLanguages(data.accept_languages); |
| + assert_equals(eventsCount, i + 1); |
| + |
| + assert_equals(navigator.languages.length, data.languages.length); |
| + // FIXME: test navigator.language |
| + for (var j = 0; j < navigator.languages.length; ++j) { |
| + assert_equals(navigator.languages[j], data.languages[j]); |
| + } |
| + } |
| +}, "Test that navigator.languages reflects the accept languages value."); |
| + |
| +test(function() { |
| + var previous = navigator.languages; |
| + assert_equals(navigator.languages, navigator.languages); |
| + assert_equals(navigator.languages, previous); |
| + |
| + window.testRunner.setAcceptLanguages('fr-FR'); |
| + assert_not_equals(navigator.languages, previous); |
| +}, "Test that navigator.languages caching behaviour."); |
| + |
| </script> |
| </body> |
| </html> |