OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <html> |
| 3 <body> |
| 4 <script src="../resources/testharness.js"></script> |
| 5 <script src="../resources/testharnessreport.js"></script> |
| 6 <script> |
| 7 |
| 8 test(function() { |
| 9 assert_true('language' in window.navigator); |
| 10 assert_false('languages' in window.navigator); |
| 11 assert_true('onlanguagechange' in window); |
| 12 }, "Test that NavigatorLanguage API is present in window"); |
| 13 |
| 14 test(function() { |
| 15 var received = false; |
| 16 window.onlanguagechange = function() { |
| 17 received = true; |
| 18 } |
| 19 |
| 20 window.testRunner.setAcceptLanguages('klingon'); |
| 21 assert_true(received); |
| 22 }, "Test that the languagechange event fires on window.onlanguagechange"); |
| 23 |
| 24 test(function() { |
| 25 var received = false; |
| 26 window.addEventListener('languagechange', function() { |
| 27 received = true; |
| 28 }); |
| 29 |
| 30 window.testRunner.setAcceptLanguages('klingon-FR'); |
| 31 assert_true(received); |
| 32 }, "Test that the languagechange event fires on window.addEventListener('languag
echange')"); |
| 33 |
| 34 test(function() { |
| 35 window.received = false; // We need a global variable here. |
| 36 document.body.setAttribute('onlanguagechange', 'window.received = true;'); |
| 37 |
| 38 window.testRunner.setAcceptLanguages('klingon-US'); |
| 39 assert_true(window.received); |
| 40 }, "Test that the languagechange event fires on body onlanguagechange attribute"
); |
| 41 |
| 42 test(function() { |
| 43 window.received = 0; // We need a global variable here. |
| 44 var fromWindowHandler = false; |
| 45 document.body.setAttribute('onlanguagechange', 'window.received++;'); |
| 46 window.onlanguagechange = function() { |
| 47 received++; |
| 48 fromWindowHandler = true; |
| 49 } |
| 50 |
| 51 window.testRunner.setAcceptLanguages('klingon'); |
| 52 assert_equals(window.received, 1); |
| 53 assert_true(fromWindowHandler); |
| 54 |
| 55 window.received = 0; |
| 56 fromWindowHandler = false; |
| 57 window.onlanguagechange = function() { |
| 58 received++; |
| 59 fromWindowHandler = true; |
| 60 } |
| 61 document.body.setAttribute('onlanguagechange', 'window.received++;'); |
| 62 |
| 63 window.testRunner.setAcceptLanguages('klingon-FR'); |
| 64 assert_equals(window.received, 1); |
| 65 assert_false(fromWindowHandler); |
| 66 }, "Test that the languagechange event fires on body onlanguagechange attribute
XOR window.onlanguagechange"); |
| 67 |
| 68 test(function() { |
| 69 var eventsCount = 0; |
| 70 window.onlanguagechange = function() { |
| 71 eventsCount++; |
| 72 } |
| 73 |
| 74 window.testRunner.setAcceptLanguages('klingon-US'); |
| 75 window.testRunner.setAcceptLanguages('klingon-US'); |
| 76 |
| 77 assert_equals(eventsCount, 1); |
| 78 }, "Test that changing the language to the same value doesn't fire an event.") |
| 79 |
| 80 test(function() { |
| 81 window.addEventListener('languagechange', function(e) { |
| 82 assert_false(e.cancelable); |
| 83 assert_false(e.bubbles); |
| 84 }); |
| 85 |
| 86 window.testRunner.setAcceptLanguages('klingon'); |
| 87 }, "Test properties of the fired event."); |
| 88 |
| 89 </script> |
| 90 </body> |
| 91 </html> |
OLD | NEW |