OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <meta charset=utf-8> | 2 <meta charset=utf-8> |
3 <title>Document.createEvent</title> | 3 <title>Document.createEvent</title> |
4 <link rel=help href="https://dom.spec.whatwg.org/#dom-document-createevent"> | 4 <link rel=help href="https://dom.spec.whatwg.org/#dom-document-createevent"> |
5 <script src="../../../../resources/testharness.js"></script> | 5 <script src="../../../../resources/testharness.js"></script> |
6 <script src="../../../../resources/testharnessreport.js"></script> | 6 <script src="../../../../resources/testharnessreport.js"></script> |
7 <script src="Document-createEvent.js"></script> | 7 <script src="Document-createEvent.js"></script> |
8 <div id="log"></div> | 8 <div id="log"></div> |
9 <script> | 9 <script> |
10 function testAlias(arg, iface) { | 10 function testAlias(arg, iface) { |
(...skipping 21 matching lines...) Expand all Loading... |
32 assert_equals(ev.isTrusted, false, | 32 assert_equals(ev.isTrusted, false, |
33 "isTrusted should be initialized to false"); | 33 "isTrusted should be initialized to false"); |
34 }, "createEvent('" + arg + "') should be initialized correctly."); | 34 }, "createEvent('" + arg + "') should be initialized correctly."); |
35 } | 35 } |
36 for (var alias in aliases) { | 36 for (var alias in aliases) { |
37 var iface = aliases[alias]; | 37 var iface = aliases[alias]; |
38 testAlias(alias, iface); | 38 testAlias(alias, iface); |
39 testAlias(alias.toLowerCase(), iface); | 39 testAlias(alias.toLowerCase(), iface); |
40 testAlias(alias.toUpperCase(), iface); | 40 testAlias(alias.toUpperCase(), iface); |
41 | 41 |
42 if (!alias.endsWith("s")) { | 42 if (alias[alias.length - 1] != "s") { |
43 var plural = alias + "s"; | 43 var plural = alias + "s"; |
44 if (!(plural in aliases)) { | 44 if (!(plural in aliases)) { |
45 test(function () { | 45 test(function () { |
46 assert_throws("NOT_SUPPORTED_ERR", function () { | 46 assert_throws("NOT_SUPPORTED_ERR", function () { |
47 var evt = document.createEvent(plural); | 47 var evt = document.createEvent(plural); |
48 }); | 48 }); |
49 }, 'Should throw NOT_SUPPORTED_ERR for pluralized legacy event interface "
' + plural + '"'); | 49 }, 'Should throw NOT_SUPPORTED_ERR for pluralized legacy event interface "
' + plural + '"'); |
50 } | 50 } |
51 } | 51 } |
52 } | 52 } |
53 | 53 |
54 test(function() { | 54 test(function() { |
55 assert_throws("NOT_SUPPORTED_ERR", function() { | 55 assert_throws("NOT_SUPPORTED_ERR", function() { |
56 var evt = document.createEvent("foo"); | 56 var evt = document.createEvent("foo"); |
57 }); | 57 }); |
58 assert_throws("NOT_SUPPORTED_ERR", function() { | 58 assert_throws("NOT_SUPPORTED_ERR", function() { |
59 // 'LATIN CAPITAL LETTER I WITH DOT ABOVE' (U+0130) | 59 // 'LATIN CAPITAL LETTER I WITH DOT ABOVE' (U+0130) |
60 var evt = document.createEvent("U\u0130Event"); | 60 var evt = document.createEvent("U\u0130Event"); |
61 }); | 61 }); |
62 assert_throws("NOT_SUPPORTED_ERR", function() { | 62 assert_throws("NOT_SUPPORTED_ERR", function() { |
63 // 'LATIN SMALL LETTER DOTLESS I' (U+0131) | 63 // 'LATIN SMALL LETTER DOTLESS I' (U+0131) |
64 var evt = document.createEvent("U\u0131Event"); | 64 var evt = document.createEvent("U\u0131Event"); |
65 }); | 65 }); |
66 }, "Should throw NOT_SUPPORTED_ERR for unrecognized arguments"); | 66 }, "Should throw NOT_SUPPORTED_ERR for unrecognized arguments"); |
67 | 67 |
68 /* | 68 /* |
69 The following are event interfaces which do actually exist, but must still | 69 * The following are event interfaces which do actually exist, but must still |
70 throw since they're absent from the table in the spec | 70 * throw since they're absent from the table in the spec for |
71 for document.createEvent(). | 71 * document.createEvent(). This list is not exhaustive, but includes all |
72 This list is not exhaustive. | 72 * interfaces that it is known some UA does or did not throw for. |
73 */ | 73 */ |
74 var someNonCreateableEvents = [ | 74 var someNonCreateableEvents = [ |
75 "AnimationEvent", | 75 "AnimationEvent", |
76 "AnimationPlayerEvent", | 76 "AnimationPlayerEvent", |
77 "ApplicationCacheErrorEvent", | 77 "ApplicationCacheErrorEvent", |
78 "AudioProcessingEvent", | 78 "AudioProcessingEvent", |
79 "AutocompleteErrorEvent", | 79 "AutocompleteErrorEvent", |
80 "BeforeInstallPromptEvent", | 80 "BeforeInstallPromptEvent", |
81 "BeforeUnloadEvent", | 81 "BeforeUnloadEvent", |
82 "BlobEvent", | 82 "BlobEvent", |
83 "ClipboardEvent", | 83 "ClipboardEvent", |
84 "CloseEvent", | 84 "CloseEvent", |
| 85 "CommandEvent", |
85 "CompositionEvent", | 86 "CompositionEvent", |
| 87 "DataContainerEvent", |
86 "DeviceLightEvent", | 88 "DeviceLightEvent", |
87 "DeviceMotionEvent", | 89 "DeviceMotionEvent", |
88 "DeviceOrientationEvent", | 90 "DeviceOrientationEvent", |
89 "DragEvent", | 91 "DragEvent", |
90 "ErrorEvent", | 92 "ErrorEvent", |
91 "ExtendableEvent", | 93 "ExtendableEvent", |
92 "ExtendableMessageEvent", | 94 "ExtendableMessageEvent", |
93 "FetchEvent", | 95 "FetchEvent", |
94 "FocusEvent", | 96 "FocusEvent", |
95 "FontFaceSetLoadEvent", | 97 "FontFaceSetLoadEvent", |
96 "GamepadEvent", | 98 "GamepadEvent", |
97 "GeofencingEvent", | 99 "GeofencingEvent", |
98 "HashChangeEvent", | 100 "HashChangeEvent", |
99 "IDBVersionChangeEvent", | 101 "IDBVersionChangeEvent", |
100 "InstallEvent", | 102 "InstallEvent", |
101 "KeyEvent", | 103 "KeyEvent", |
102 "MIDIConnectionEvent", | 104 "MIDIConnectionEvent", |
103 "MIDIMessageEvent", | 105 "MIDIMessageEvent", |
104 "MediaEncryptedEvent", | 106 "MediaEncryptedEvent", |
105 "MediaKeyEvent", | 107 "MediaKeyEvent", |
106 "MediaKeyMessageEvent", | 108 "MediaKeyMessageEvent", |
107 "MediaQueryListEvent", | 109 "MediaQueryListEvent", |
108 "MediaStreamEvent", | 110 "MediaStreamEvent", |
109 "MediaStreamTrackEvent", | 111 "MediaStreamTrackEvent", |
| 112 "MouseScrollEvent", |
110 "MutationEvent", | 113 "MutationEvent", |
111 "NotificationEvent", | 114 "NotificationEvent", |
| 115 "NotifyPaintEvent", |
112 "OfflineAudioCompletionEvent", | 116 "OfflineAudioCompletionEvent", |
113 "OrientationEvent", | 117 "OrientationEvent", |
| 118 "PageTransition", // Yes, with no "Event" |
114 "PageTransitionEvent", | 119 "PageTransitionEvent", |
115 "PointerEvent", | 120 "PointerEvent", |
116 "PopStateEvent", | 121 "PopStateEvent", |
| 122 "PopUpEvent", |
117 "PresentationConnectionAvailableEvent", | 123 "PresentationConnectionAvailableEvent", |
118 "PresentationConnectionCloseEvent", | 124 "PresentationConnectionCloseEvent", |
119 "ProgressEvent", | 125 "ProgressEvent", |
120 "PromiseRejectionEvent", | 126 "PromiseRejectionEvent", |
121 "PushEvent", | 127 "PushEvent", |
122 "RTCDTMFToneChangeEvent", | 128 "RTCDTMFToneChangeEvent", |
123 "RTCDataChannelEvent", | 129 "RTCDataChannelEvent", |
124 "RTCIceCandidateEvent", | 130 "RTCIceCandidateEvent", |
125 "RelatedEvent", | 131 "RelatedEvent", |
126 "ResourceProgressEvent", | 132 "ResourceProgressEvent", |
127 "SVGEvent", | 133 "SVGEvent", |
128 "SVGZoomEvent", | 134 "SVGZoomEvent", |
| 135 "ScrollAreaEvent", |
129 "SecurityPolicyViolationEvent", | 136 "SecurityPolicyViolationEvent", |
130 "ServicePortConnectEvent", | 137 "ServicePortConnectEvent", |
131 "ServiceWorkerMessageEvent", | 138 "ServiceWorkerMessageEvent", |
| 139 "SimpleGestureEvent", |
132 "SpeechRecognitionError", | 140 "SpeechRecognitionError", |
133 "SpeechRecognitionEvent", | 141 "SpeechRecognitionEvent", |
134 "SpeechSynthesisEvent", | 142 "SpeechSynthesisEvent", |
135 "StorageEvent", | 143 "StorageEvent", |
136 "SyncEvent", | 144 "SyncEvent", |
137 "TextEvent", | 145 "TextEvent", |
| 146 "TimeEvent", |
138 "TrackEvent", | 147 "TrackEvent", |
139 "TransitionEvent", | 148 "TransitionEvent", |
140 "WebGLContextEvent", | 149 "WebGLContextEvent", |
141 "WebKitAnimationEvent", | 150 "WebKitAnimationEvent", |
142 "WebKitTransitionEvent", | 151 "WebKitTransitionEvent", |
143 "WheelEvent" | 152 "WheelEvent", |
| 153 "XULCommandEvent", |
144 ]; | 154 ]; |
145 someNonCreateableEvents.forEach(function (eventInterface) { | 155 someNonCreateableEvents.forEach(function (eventInterface) { |
146 test(function () { | 156 test(function () { |
147 assert_throws("NOT_SUPPORTED_ERR", function () { | 157 assert_throws("NOT_SUPPORTED_ERR", function () { |
148 var evt = document.createEvent(eventInterface); | 158 var evt = document.createEvent(eventInterface); |
149 }); | 159 }); |
150 }, 'Should throw NOT_SUPPORTED_ERR for non-legacy event interface "' + eventIn
terface + '"'); | 160 }, 'Should throw NOT_SUPPORTED_ERR for non-legacy event interface "' + eventIn
terface + '"'); |
151 | 161 |
152 test(function () { | 162 test(function () { |
153 assert_throws("NOT_SUPPORTED_ERR", function () { | 163 assert_throws("NOT_SUPPORTED_ERR", function () { |
154 var evt = document.createEvent(eventInterface + "s"); | 164 var evt = document.createEvent(eventInterface + "s"); |
155 }); | 165 }); |
156 }, 'Should throw NOT_SUPPORTED_ERR for pluralized non-legacy event interface "
' + eventInterface + '"'); | 166 }, 'Should throw NOT_SUPPORTED_ERR for pluralized non-legacy event interface "
' + eventInterface + 's"'); |
157 }); | 167 }); |
158 </script> | 168 </script> |
OLD | NEW |