Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / events / constructors / custom-event-constructor.html
blob4e2e69448b28805718149f28909aea995e8126d6
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="../../../resources/js-test.js"></script>
5 </head>
6 <body>
7 <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");
21 // Detail is a number
22 shouldBe("new CustomEvent('eventType', { detail: 10 }).detail", "10");
24 // Detail is a string
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
35 // result in "null".
36 shouldBe("new CustomEvent('eventType', { detail: undefined }).detail", "null");
38 // Detail is 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'; } })");
46 </script>
47 </body>
48 </html>