| <!DOCTYPE html> |
| <title>Event.initEvent</title> |
| <link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="log"></div> |
| <script> |
| var booleans = [true, false]; |
| booleans.forEach(function(bubbles) { |
| booleans.forEach(function(cancelable) { |
| test(function() { |
| var e = document.createEvent("Event") |
| e.initEvent("type", bubbles, cancelable) |
| |
| // Step 3. |
| // Can't test the stop propagation flag and stop immediate propagation flag. |
| assert_equals(e.defaultPrevented, false, "defaultPrevented") |
| // Step 4. |
| assert_equals(e.isTrusted, false, "isTrusted") |
| // Step 5. |
| assert_equals(e.target, null, "target") |
| // Step 6. |
| assert_equals(e.type, "type", "type") |
| // Step 7. |
| assert_equals(e.bubbles, bubbles, "bubbles") |
| // Step 8. |
| assert_equals(e.cancelable, cancelable, "cancelable") |
| }, "Properties of initEvent(type, " + bubbles + ", " + cancelable + ")") |
| }) |
| }) |
| |
| test(function() { |
| var e = document.createEvent("Event") |
| e.initEvent("type 1", true, false) |
| assert_equals(e.type, "type 1", "type (first init)") |
| assert_equals(e.bubbles, true, "bubbles (first init)") |
| assert_equals(e.cancelable, false, "cancelable (first init)") |
| |
| e.initEvent("type 2", false, true) |
| assert_equals(e.type, "type 2", "type (second init)") |
| assert_equals(e.bubbles, false, "bubbles (second init)") |
| assert_equals(e.cancelable, true, "cancelable (second init)") |
| }, "Calling initEvent multiple times (getting type).") |
| |
| test(function() { |
| // https://bugzilla.mozilla.org/show_bug.cgi?id=998809 |
| var e = document.createEvent("Event") |
| e.initEvent("type 1", true, false) |
| assert_equals(e.bubbles, true, "bubbles (first init)") |
| assert_equals(e.cancelable, false, "cancelable (first init)") |
| |
| e.initEvent("type 2", false, true) |
| assert_equals(e.type, "type 2", "type (second init)") |
| assert_equals(e.bubbles, false, "bubbles (second init)") |
| assert_equals(e.cancelable, true, "cancelable (second init)") |
| }, "Calling initEvent multiple times (not getting type).") |
| |
| // Step 2. |
| async_test(function() { |
| // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17715 |
| |
| var e = document.createEvent("Event") |
| e.initEvent("type", false, false) |
| assert_equals(e.type, "type", "type (first init)") |
| assert_equals(e.bubbles, false, "bubbles (first init)") |
| assert_equals(e.cancelable, false, "cancelable (first init)") |
| |
| var target = document.createElement("div") |
| target.addEventListener("type", this.step_func(function() { |
| e.initEvent("fail", true, true) |
| assert_equals(e.type, "type", "type (second init)") |
| assert_equals(e.bubbles, false, "bubbles (second init)") |
| assert_equals(e.cancelable, false, "cancelable (second init)") |
| }), false) |
| |
| assert_equals(target.dispatchEvent(e), true, "dispatchEvent must return true") |
| |
| this.done() |
| }, "Calling initEvent must not have an effect during dispatching.") |
| |
| async_test(function() { |
| var e = document.createEvent("Event") |
| e.initEvent("type", false, false) |
| e.stopPropagation() |
| |
| var target = document.createElement("div") |
| target.addEventListener("type", this.step_func(function() { |
| assert_unreached("") |
| }), false) |
| assert_equals(target.dispatchEvent(e), true, "dispatchEvent must return true") |
| assert_equals(target.dispatchEvent(e), true, "dispatchEvent must return true") |
| |
| e.initEvent("type", false, false) |
| var called = false |
| var target = document.createElement("div") |
| target.addEventListener("type", this.step_func(function() { |
| called = true |
| }), false) |
| assert_false(called) |
| assert_equals(target.dispatchEvent(e), true, "dispatchEvent must return true") |
| assert_true(called) |
| |
| this.done() |
| }, "Calling initEvent must unset the stop propagation flag.") |
| |
| async_test(function() { |
| var e = document.createEvent("Event") |
| e.initEvent("type", false, false) |
| |
| var target = document.createElement("div") |
| target.addEventListener("type", this.step_func(function() { |
| e.initEvent("type2", true, true); |
| assert_equals(e.type, "type", "initEvent type setter should short-circuit"); |
| assert_false(e.bubbles, "initEvent bubbles setter should short-circuit"); |
| assert_false(e.cancelable, "initEvent cancelable setter should short-circuit"); |
| }), false) |
| assert_equals(target.dispatchEvent(e), true, "dispatchEvent must return true") |
| |
| this.done() |
| }, "Calling initEvent during propagation.") |
| </script> |