| <!doctype html> | |
| <title>Event constructors</title> | |
| <script src=/resources/testharness.js></script> | |
| <script src=/resources/testharnessreport.js></script> | |
| <div id=log></div> | |
| <script> | |
| test(function() { | |
| assert_throws(new TypeError(), function() { | |
| new Event() | |
| }) | |
| }) | |
| test(function() { | |
| var test_error = { name: "test" } | |
| assert_throws(test_error, function() { | |
| new Event({ toString: function() { throw test_error; } }) | |
| }) | |
| }) | |
| test(function() { | |
| var ev = new Event("") | |
| assert_equals(ev.type, "") | |
| assert_equals(ev.target, null) | |
| assert_equals(ev.currentTarget, null) | |
| assert_equals(ev.eventPhase, Event.NONE) | |
| assert_equals(ev.bubbles, false) | |
| assert_equals(ev.cancelable, false) | |
| assert_equals(ev.defaultPrevented, false) | |
| assert_equals(ev.isTrusted, false) | |
| assert_true(ev.timeStamp > 0) | |
| assert_true("initEvent" in ev) | |
| }) | |
| test(function() { | |
| var ev = new Event("test") | |
| assert_equals(ev.type, "test") | |
| assert_equals(ev.target, null) | |
| assert_equals(ev.currentTarget, null) | |
| assert_equals(ev.eventPhase, Event.NONE) | |
| assert_equals(ev.bubbles, false) | |
| assert_equals(ev.cancelable, false) | |
| assert_equals(ev.defaultPrevented, false) | |
| assert_equals(ev.isTrusted, false) | |
| assert_true(ev.timeStamp > 0) | |
| assert_true("initEvent" in ev) | |
| }) | |
| test(function() { | |
| var ev = Event("test") | |
| assert_equals(ev.type, "test") | |
| assert_equals(ev.target, null) | |
| assert_equals(ev.currentTarget, null) | |
| assert_equals(ev.eventPhase, Event.NONE) | |
| assert_equals(ev.bubbles, false) | |
| assert_equals(ev.cancelable, false) | |
| assert_equals(ev.defaultPrevented, false) | |
| assert_equals(ev.isTrusted, false) | |
| assert_true(ev.timeStamp > 0) | |
| assert_true("initEvent" in ev) | |
| }) | |
| test(function() { | |
| var ev = new Event("I am an event", { bubbles: true, cancelable: false}) | |
| assert_equals(ev.type, "I am an event") | |
| assert_equals(ev.bubbles, true) | |
| assert_equals(ev.cancelable, false) | |
| }) | |
| test(function() { | |
| var ev = new Event("@", { bubblesIGNORED: true, cancelable: true}) | |
| assert_equals(ev.type, "@") | |
| assert_equals(ev.bubbles, false) | |
| assert_equals(ev.cancelable, true) | |
| }) | |
| test(function() { | |
| var ev = new Event("@", { "bubbles\0IGNORED": true, cancelable: true}) | |
| assert_equals(ev.type, "@") | |
| assert_equals(ev.bubbles, false) | |
| assert_equals(ev.cancelable, true) | |
| }) | |
| test(function() { | |
| var ev = new Event("Xx", { cancelable: true}) | |
| assert_equals(ev.type, "Xx") | |
| assert_equals(ev.bubbles, false) | |
| assert_equals(ev.cancelable, true) | |
| }) | |
| test(function() { | |
| var ev = new Event("Xx", {}) | |
| assert_equals(ev.type, "Xx") | |
| assert_equals(ev.bubbles, false) | |
| assert_equals(ev.cancelable, false) | |
| }) | |
| test(function() { | |
| var ev = new Event("Xx", {bubbles: true, cancelable: false, sweet: "x"}) | |
| assert_equals(ev.type, "Xx") | |
| assert_equals(ev.bubbles, true) | |
| assert_equals(ev.cancelable, false) | |
| assert_equals(ev.sweet, undefined) | |
| }) | |
| test(function() { | |
| var called = [] | |
| var ev = new Event("Xx", { | |
| get cancelable() { | |
| called.push("cancelable") | |
| return false | |
| }, | |
| get bubbles() { | |
| called.push("bubbles") | |
| return true; | |
| }, | |
| get sweet() { | |
| called.push("sweet") | |
| return "x" | |
| } | |
| }) | |
| assert_array_equals(called, ["bubbles", "cancelable"]) | |
| assert_equals(ev.type, "Xx") | |
| assert_equals(ev.bubbles, true) | |
| assert_equals(ev.cancelable, false) | |
| assert_equals(ev.sweet, undefined) | |
| }) | |
| test(function() { | |
| var ev = new CustomEvent("$", {detail: 54, sweet: "x", sweet2: "x", cancelable:true}) | |
| assert_equals(ev.type, "$") | |
| assert_equals(ev.bubbles, false) | |
| assert_equals(ev.cancelable, true) | |
| assert_equals(ev.sweet, undefined) | |
| assert_equals(ev.detail, 54) | |
| }) | |
| </script> |