Index: LayoutTests/navigator_language/navigator_language.html |
diff --git a/LayoutTests/navigator_language/navigator_language.html b/LayoutTests/navigator_language/navigator_language.html |
index 1ad57ef6ebfee282993ca7af3bc9d3326d3b3d48..5a92754081ad6e8ab02f8ec250374e98dceda866 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 = [ |
+ { 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-_'] }, |
+ { 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> |