| 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>
|
|
|