• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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