| Index: LayoutTests/navigator_language/navigator_language.html
|
| diff --git a/LayoutTests/navigator_language/navigator_language.html b/LayoutTests/navigator_language/navigator_language.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1ad57ef6ebfee282993ca7af3bc9d3326d3b3d48
|
| --- /dev/null
|
| +++ b/LayoutTests/navigator_language/navigator_language.html
|
| @@ -0,0 +1,91 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<body>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<script>
|
| +
|
| +test(function() {
|
| + assert_true('language' in window.navigator);
|
| + assert_false('languages' in window.navigator);
|
| + assert_true('onlanguagechange' in window);
|
| +}, "Test that NavigatorLanguage API is present in window");
|
| +
|
| +test(function() {
|
| + var received = false;
|
| + window.onlanguagechange = function() {
|
| + received = true;
|
| + }
|
| +
|
| + window.testRunner.setAcceptLanguages('klingon');
|
| + assert_true(received);
|
| +}, "Test that the languagechange event fires on window.onlanguagechange");
|
| +
|
| +test(function() {
|
| + var received = false;
|
| + window.addEventListener('languagechange', function() {
|
| + received = true;
|
| + });
|
| +
|
| + window.testRunner.setAcceptLanguages('klingon-FR');
|
| + assert_true(received);
|
| +}, "Test that the languagechange event fires on window.addEventListener('languagechange')");
|
| +
|
| +test(function() {
|
| + window.received = false; // We need a global variable here.
|
| + document.body.setAttribute('onlanguagechange', 'window.received = true;');
|
| +
|
| + window.testRunner.setAcceptLanguages('klingon-US');
|
| + assert_true(window.received);
|
| +}, "Test that the languagechange event fires on body onlanguagechange attribute");
|
| +
|
| +test(function() {
|
| + window.received = 0; // We need a global variable here.
|
| + var fromWindowHandler = false;
|
| + document.body.setAttribute('onlanguagechange', 'window.received++;');
|
| + window.onlanguagechange = function() {
|
| + received++;
|
| + fromWindowHandler = true;
|
| + }
|
| +
|
| + window.testRunner.setAcceptLanguages('klingon');
|
| + assert_equals(window.received, 1);
|
| + assert_true(fromWindowHandler);
|
| +
|
| + window.received = 0;
|
| + fromWindowHandler = false;
|
| + window.onlanguagechange = function() {
|
| + received++;
|
| + fromWindowHandler = true;
|
| + }
|
| + document.body.setAttribute('onlanguagechange', 'window.received++;');
|
| +
|
| + window.testRunner.setAcceptLanguages('klingon-FR');
|
| + assert_equals(window.received, 1);
|
| + assert_false(fromWindowHandler);
|
| +}, "Test that the languagechange event fires on body onlanguagechange attribute XOR window.onlanguagechange");
|
| +
|
| +test(function() {
|
| + var eventsCount = 0;
|
| + window.onlanguagechange = function() {
|
| + eventsCount++;
|
| + }
|
| +
|
| + window.testRunner.setAcceptLanguages('klingon-US');
|
| + window.testRunner.setAcceptLanguages('klingon-US');
|
| +
|
| + assert_equals(eventsCount, 1);
|
| +}, "Test that changing the language to the same value doesn't fire an event.")
|
| +
|
| +test(function() {
|
| + window.addEventListener('languagechange', function(e) {
|
| + assert_false(e.cancelable);
|
| + assert_false(e.bubbles);
|
| + });
|
| +
|
| + window.testRunner.setAcceptLanguages('klingon');
|
| +}, "Test properties of the fired event.");
|
| +
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|