4 <script src=
"../../../resources/js-test.js"></script>
9 description("This tests the constructor for the CustomEvent DOM class.");
11 // No initializer passed.
12 shouldBe("new CustomEvent('eventType').bubbles", "false");
13 shouldBe("new CustomEvent('eventType').cancelable", "false");
14 shouldBeNull("new CustomEvent('eventType').detail");
16 // Bubbles and cancelable true, details is missing.
17 shouldBe("new CustomEvent('eventType', { bubbles: true, cancelable: true }).bubbles", "true");
18 shouldBe("new CustomEvent('eventType', { bubbles: true, cancelable: true }).cancelable", "true");
19 shouldBeNull("new CustomEvent('eventType', { bubbles: true, cancelable: true }).detail");
22 shouldBe("new CustomEvent('eventType', { detail: 10 }).detail", "10");
25 shouldBe("new CustomEvent('eventType', { detail: \'string\' }).detail", "'string'");
27 // Detail is an object
28 var detailObject
= { };
29 shouldBe("new CustomEvent('eventType', { detail: detailObject }).detail", "detailObject");
31 // Detail is a DOM object
32 shouldBe("new CustomEvent('eventType', { detail: document }).detail", "document");
34 // Detail is undefined. Since the default value of detail is null, it should
36 shouldBe("new CustomEvent('eventType', { detail: undefined }).detail", "null");
39 shouldBe("new CustomEvent('eventType', { detail: null }).detail", "null");
41 // Detail is a getter.
42 shouldBe("new CustomEvent('eventType', { get detail() { return true; } }).detail", "true");
44 // Detail throws an exeception.
45 shouldThrow("new CustomEvent('eventType', { get detail() { throw 'Custom Error'; } })");