173 lines
9.6 KiB
HTML
173 lines
9.6 KiB
HTML
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
description("This tests that document.createEvent is hooked up for all Event interfaces (and alternatives) and creates the right instance.")
|
|
|
|
// Event
|
|
shouldBeTrue("document.createEvent('Event') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('Event').constructor === window.Event");
|
|
|
|
// Events (Event alternative)
|
|
shouldBeTrue("document.createEvent('Events') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('Events').constructor === window.Event");
|
|
|
|
// HTMLEvents (Event alternative)
|
|
shouldBeTrue("document.createEvent('HTMLEvents') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('HTMLEvents').constructor === window.Event");
|
|
|
|
// CompositionEvent
|
|
shouldBeTrue("document.createEvent('CompositionEvent') instanceof window.CompositionEvent");
|
|
shouldBeTrue("document.createEvent('CompositionEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('CompositionEvent').constructor === window.CompositionEvent");
|
|
|
|
// CustomEvent
|
|
shouldBeTrue("document.createEvent('CustomEvent') instanceof window.CustomEvent");
|
|
shouldBeTrue("document.createEvent('CustomEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('CustomEvent').constructor === window.CustomEvent");
|
|
|
|
// HashChangeEvent
|
|
shouldBeTrue("document.createEvent('HashChangeEvent') instanceof window.HashChangeEvent");
|
|
shouldBeTrue("document.createEvent('HashChangeEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('HashChangeEvent').constructor === window.HashChangeEvent");
|
|
|
|
// KeyboardEvent
|
|
shouldBeTrue("document.createEvent('KeyboardEvent') instanceof window.KeyboardEvent");
|
|
shouldBeTrue("document.createEvent('KeyboardEvent') instanceof window.UIEvent");
|
|
shouldBeTrue("document.createEvent('KeyboardEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('KeyboardEvent').constructor === window.KeyboardEvent");
|
|
|
|
// KeyboardEvents (KeyboardEvent alternative)
|
|
shouldBeTrue("document.createEvent('KeyboardEvents') instanceof window.KeyboardEvent");
|
|
shouldBeTrue("document.createEvent('KeyboardEvents') instanceof window.UIEvent");
|
|
shouldBeTrue("document.createEvent('KeyboardEvents') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('KeyboardEvents').constructor === window.KeyboardEvent");
|
|
|
|
// MessageEvent
|
|
shouldBeTrue("document.createEvent('MessageEvent') instanceof window.MessageEvent");
|
|
shouldBeTrue("document.createEvent('MessageEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('MessageEvent').constructor === window.MessageEvent");
|
|
|
|
// MouseEvent
|
|
shouldBeTrue("document.createEvent('MouseEvent') instanceof window.MouseEvent");
|
|
shouldBeTrue("document.createEvent('MouseEvent') instanceof window.UIEvent");
|
|
shouldBeTrue("document.createEvent('MouseEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('MouseEvent').constructor === window.MouseEvent");
|
|
|
|
// MouseEvents (MouseEvent alternative)
|
|
shouldBeTrue("document.createEvent('MouseEvents') instanceof window.MouseEvent");
|
|
shouldBeTrue("document.createEvent('MouseEvents') instanceof window.UIEvent");
|
|
shouldBeTrue("document.createEvent('MouseEvents') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('MouseEvents').constructor === window.MouseEvent");
|
|
|
|
// MutationEvent
|
|
shouldBeTrue("document.createEvent('MutationEvent') instanceof window.MutationEvent");
|
|
shouldBeTrue("document.createEvent('MutationEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('MutationEvent').constructor === window.MutationEvent");
|
|
|
|
// MutationEvents (MutationEvent alternative)
|
|
shouldBeTrue("document.createEvent('MutationEvents') instanceof window.MutationEvent");
|
|
shouldBeTrue("document.createEvent('MutationEvents') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('MutationEvents').constructor === window.MutationEvent");
|
|
|
|
// OverflowEvent
|
|
shouldBeTrue("document.createEvent('OverflowEvent') instanceof window.OverflowEvent");
|
|
shouldBeTrue("document.createEvent('OverflowEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('OverflowEvent').constructor === window.OverflowEvent");
|
|
|
|
// TextEvent
|
|
shouldBeTrue("document.createEvent('TextEvent') instanceof window.TextEvent");
|
|
shouldBeTrue("document.createEvent('TextEvent') instanceof window.UIEvent");
|
|
shouldBeTrue("document.createEvent('TextEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('TextEvent').constructor === window.TextEvent");
|
|
|
|
// UIEvent
|
|
shouldBeTrue("document.createEvent('UIEvent') instanceof window.UIEvent");
|
|
shouldBeTrue("document.createEvent('UIEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('UIEvent').constructor === window.UIEvent");
|
|
|
|
// UIEvents (UIEvent alternative)
|
|
shouldBeTrue("document.createEvent('UIEvents') instanceof window.UIEvent");
|
|
shouldBeTrue("document.createEvent('UIEvents') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('UIEvents').constructor === window.UIEvent");
|
|
|
|
// WheelEvent
|
|
shouldBeTrue("document.createEvent('WheelEvent') instanceof window.WheelEvent");
|
|
shouldBeTrue("document.createEvent('WheelEvent') instanceof window.MouseEvent");
|
|
shouldBeTrue("document.createEvent('WheelEvent') instanceof window.UIEvent");
|
|
shouldBeTrue("document.createEvent('WheelEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('WheelEvent').constructor === window.WheelEvent");
|
|
|
|
// StorageEvent
|
|
shouldBeTrue("document.createEvent('StorageEvent') instanceof window.StorageEvent");
|
|
shouldBeTrue("document.createEvent('StorageEvent') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('StorageEvent').constructor === window.StorageEvent");
|
|
|
|
// SVGZoomEvents
|
|
shouldBeTrue("document.createEvent('SVGZoomEvents') instanceof window.SVGZoomEvent");
|
|
shouldBeTrue("document.createEvent('SVGZoomEvents') instanceof window.Event");
|
|
shouldBeTrue("document.createEvent('SVGZoomEvents').constructor === window.SVGZoomEvent");
|
|
|
|
// The following are here for completeness, but we won't run these tests until they are supported in more ports.
|
|
|
|
// #if ENABLE(TOUCH_EVENTS)
|
|
// TouchEvent
|
|
// shouldBeTrue("document.createEvent('TouchEvent') instanceof window.TouchEvent");
|
|
// shouldBeTrue("document.createEvent('TouchEvent') instanceof window.Event");
|
|
// shouldBeTrue("document.createEvent('TouchEvent').constructor === window.TouchEvent");
|
|
|
|
// #if ENABLE(DEVICE_ORIENTATION)
|
|
// DeviceMotionEvent
|
|
// shouldBeTrue("document.createEvent('DeviceMotionEvent') instanceof window.DeviceMotionEvent");
|
|
// shouldBeTrue("document.createEvent('DeviceMotionEvent') instanceof window.Event");
|
|
// shouldBeTrue("document.createEvent('DeviceMotionEvent').constructor === window.DeviceMotionEvent");
|
|
|
|
// #if ENABLE(DEVICE_ORIENTATION)
|
|
// DeviceOrientationEvent
|
|
// shouldBeTrue("document.createEvent('DeviceOrientationEvent') instanceof window.DeviceOrientationEvent");
|
|
// shouldBeTrue("document.createEvent('DeviceOrientationEvent') instanceof window.Event");
|
|
// shouldBeTrue("document.createEvent('DeviceOrientationEvent').constructor === window.DeviceOrientationEvent");
|
|
|
|
// We test both a hard coded set and the automated set below (using enumeration) to ensure that a constructor being removed
|
|
// from the window is caught a regression.
|
|
|
|
var allEventInterfacesCreateEvents = true;
|
|
for (var propertyName in window) {
|
|
if (propertyName.match(/Event$/) && window[propertyName].toString().match(/EventConstructor\]$/)) {
|
|
try {
|
|
if (!(document.createEvent(propertyName) instanceof window.Event)) {
|
|
allEventInterfacesCreateEvents = false;
|
|
debug("'document.createEvent(propertyName) instanceof window.Event' with propertyName: " + propertyName + " should be true but isn't");
|
|
}
|
|
} catch (e) {
|
|
allEventInterfacesCreateEvents = false;
|
|
debug("'document.createEvent(propertyName) instanceof window.Event' with propertyName: " + propertyName + " threw an exception: " + e);
|
|
}
|
|
|
|
try {
|
|
if (!(document.createEvent(propertyName) instanceof window[propertyName])) {
|
|
allEventInterfacesCreateEvents = false;
|
|
debug("'document.createEvent(propertyName) instanceof window[propertyName]' with propertyName: " + propertyName + " should be true but isn't");
|
|
}
|
|
} catch (e) {
|
|
allEventInterfacesCreateEvents = false;
|
|
debug("'document.createEvent(propertyName) instanceof window[propertyName]' with propertyName: " + propertyName + " threw an exception: " + e);
|
|
}
|
|
|
|
try {
|
|
if (!(document.createEvent(propertyName).constructor === window[propertyName])) {
|
|
allEventInterfacesCreateEvents = false;
|
|
debug("'document.createEvent(propertyName).constructor === window[propertyName]' with propertyName: " + propertyName + " should be true but isn't");
|
|
}
|
|
} catch (e) {
|
|
allEventInterfacesCreateEvents = false;
|
|
debug("'document.createEvent(propertyName).constructor === window[propertyName]' with propertyName: " + propertyName + " threw an exception: " + e);
|
|
}
|
|
}
|
|
}
|
|
shouldBeTrue('allEventInterfacesCreateEvents');
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|