5eebd2ca30b053867c0bf6b57156ec70e0de2300
[WebKit-https.git] / LayoutTests / fast / events / initEvent-after-dispatch.html
1 <!DOCTYPE html>
2 <html>
3 <body>
4 <script src="../../resources/js-test-pre.js"></script>
5 <script>
6 description("Tests calling initEvent() on an event while it is being dispatched and after.");
7
8 function eventHandler(ev) {
9     event = ev;
10     debug("");
11     debug("* In event handler");
12     shouldBeEqualToString("event.type", "foo");
13     shouldBeTrue("event.bubbles");
14     shouldBeFalse("event.cancelable");
15     shouldBe("event.target", "document.body");
16     shouldBe("event.currentTarget", "document.body");
17     shouldBe("event.eventPhase", "Event.AT_TARGET");
18
19     debug("");
20     // It should not be possible to re-initialize an event being dispatched.
21     shouldNotThrow('testEvent.initEvent("bar", false, true)');
22     shouldBeEqualToString("event.type", "foo");
23     shouldBeTrue("event.bubbles");
24     shouldBeFalse("event.cancelable");
25     shouldBe("event.target", "document.body");
26     shouldBe("event.currentTarget", "document.body");
27     shouldBe("event.eventPhase", "Event.AT_TARGET");
28 }
29
30 var testEvent = document.createEvent("Event");
31 shouldNotThrow('testEvent.initEvent("foo", true, false)');
32 shouldBeEqualToString("testEvent.type", "foo");
33 shouldBeTrue("testEvent.bubbles");
34 shouldBeFalse("testEvent.cancelable");
35 shouldBeNull("testEvent.target");
36 shouldBeNull("testEvent.currentTarget");
37 shouldBe("testEvent.eventPhase", "Event.NONE");
38
39 document.body.addEventListener("foo", eventHandler);
40 shouldNotThrow('document.body.dispatchEvent(testEvent)');
41
42 debug("");
43 debug("* After event has been dispatched");
44 shouldBeEqualToString("testEvent.type", "foo");
45 shouldBeTrue("testEvent.bubbles");
46 shouldBeFalse("testEvent.cancelable");
47 shouldBe("testEvent.target", "document.body");
48 shouldBeNull("testEvent.currentTarget");
49 shouldBe("testEvent.eventPhase", "Event.NONE");
50
51 // It should now be possible to re-initialize the event.
52 debug("");
53 shouldNotThrow('testEvent.initEvent("bar", false, true)');
54 shouldBeEqualToString("event.type", "bar");
55 shouldBeFalse("event.bubbles");
56 shouldBeTrue("event.cancelable");
57 shouldBeNull("event.target");
58 shouldBeNull("event.currentTarget");
59 shouldBe("event.eventPhase", "Event.NONE");
60 </script>
61 <script src="../../resources/js-test-post.js"></script>
62 </body>
63 </html>