1// META: title=Event constructors 2 3test(function() { 4 assert_throws_js( 5 TypeError, 6 () => Event(""), 7 "Calling Event constructor without 'new' must throw") 8}) 9test(function() { 10 assert_throws_js(TypeError, function() { 11 new Event() 12 }) 13}) 14test(function() { 15 var test_error = { name: "test" } 16 assert_throws_exactly(test_error, function() { 17 new Event({ toString: function() { throw test_error; } }) 18 }) 19}) 20test(function() { 21 var ev = new Event("") 22 assert_equals(ev.type, "") 23 assert_equals(ev.target, null) 24 assert_equals(ev.srcElement, null) 25 assert_equals(ev.currentTarget, null) 26 assert_equals(ev.eventPhase, Event.NONE) 27 assert_equals(ev.bubbles, false) 28 assert_equals(ev.cancelable, false) 29 assert_equals(ev.defaultPrevented, false) 30 assert_equals(ev.returnValue, true) 31 assert_equals(ev.isTrusted, false) 32 assert_true(ev.timeStamp > 0) 33 assert_true("initEvent" in ev) 34}) 35test(function() { 36 var ev = new Event("test") 37 assert_equals(ev.type, "test") 38 assert_equals(ev.target, null) 39 assert_equals(ev.srcElement, null) 40 assert_equals(ev.currentTarget, null) 41 assert_equals(ev.eventPhase, Event.NONE) 42 assert_equals(ev.bubbles, false) 43 assert_equals(ev.cancelable, false) 44 assert_equals(ev.defaultPrevented, false) 45 assert_equals(ev.returnValue, true) 46 assert_equals(ev.isTrusted, false) 47 assert_true(ev.timeStamp > 0) 48 assert_true("initEvent" in ev) 49}) 50test(function() { 51 assert_throws_js(TypeError, function() { Event("test") }, 52 'Calling Event constructor without "new" must throw'); 53}) 54test(function() { 55 var ev = new Event("I am an event", { bubbles: true, cancelable: false}) 56 assert_equals(ev.type, "I am an event") 57 assert_equals(ev.bubbles, true) 58 assert_equals(ev.cancelable, false) 59}) 60test(function() { 61 var ev = new Event("@", { bubblesIGNORED: true, cancelable: true}) 62 assert_equals(ev.type, "@") 63 assert_equals(ev.bubbles, false) 64 assert_equals(ev.cancelable, true) 65}) 66test(function() { 67 var ev = new Event("@", { "bubbles\0IGNORED": true, cancelable: true}) 68 assert_equals(ev.type, "@") 69 assert_equals(ev.bubbles, false) 70 assert_equals(ev.cancelable, true) 71}) 72test(function() { 73 var ev = new Event("Xx", { cancelable: true}) 74 assert_equals(ev.type, "Xx") 75 assert_equals(ev.bubbles, false) 76 assert_equals(ev.cancelable, true) 77}) 78test(function() { 79 var ev = new Event("Xx", {}) 80 assert_equals(ev.type, "Xx") 81 assert_equals(ev.bubbles, false) 82 assert_equals(ev.cancelable, false) 83}) 84test(function() { 85 var ev = new Event("Xx", {bubbles: true, cancelable: false, sweet: "x"}) 86 assert_equals(ev.type, "Xx") 87 assert_equals(ev.bubbles, true) 88 assert_equals(ev.cancelable, false) 89 assert_equals(ev.sweet, undefined) 90}) 91test(function() { 92 var called = [] 93 var ev = new Event("Xx", { 94 get cancelable() { 95 called.push("cancelable") 96 return false 97 }, 98 get bubbles() { 99 called.push("bubbles") 100 return true; 101 }, 102 get sweet() { 103 called.push("sweet") 104 return "x" 105 } 106 }) 107 assert_array_equals(called, ["bubbles", "cancelable"]) 108 assert_equals(ev.type, "Xx") 109 assert_equals(ev.bubbles, true) 110 assert_equals(ev.cancelable, false) 111 assert_equals(ev.sweet, undefined) 112}) 113test(function() { 114 var ev = new CustomEvent("$", {detail: 54, sweet: "x", sweet2: "x", cancelable:true}) 115 assert_equals(ev.type, "$") 116 assert_equals(ev.bubbles, false) 117 assert_equals(ev.cancelable, true) 118 assert_equals(ev.sweet, undefined) 119 assert_equals(ev.detail, 54) 120}) 121