| <!DOCTYPE html> |
| <html> |
| <body> |
| <script src="../../resources/js-test.js"></script> |
| <script> |
| description("Tests that the various init*Event() functions work on an event that has already been dispatched."); |
| |
| function testEventInitFunction(_createEventString, _eventType, _initMethodName) |
| { |
| createEventString = _createEventString; |
| eventType = _eventType; |
| initMethodName = _initMethodName; |
| |
| debug("* " + eventType + ".prototype." + initMethodName + "()"); |
| evalAndLog("testEvent = document.createEvent(createEventString)"); |
| shouldBe("testEvent.__proto__", "window[eventType].prototype"); |
| evalAndLog("testEvent[initMethodName]('firstType', true, true)"); |
| shouldBeEqualToString("testEvent.type", "firstType"); |
| shouldBeTrue("testEvent.bubbles"); |
| shouldBeTrue("testEvent.cancelable"); |
| shouldBeTrue("document.body.dispatchEvent(testEvent)"); |
| evalAndLog("testEvent[initMethodName]('secondType', false, false)"); |
| shouldBeEqualToString("testEvent.type", "secondType"); |
| shouldBeFalse("testEvent.bubbles"); |
| shouldBeFalse("testEvent.cancelable"); |
| shouldBeTrue("document.body.dispatchEvent(testEvent)"); |
| debug(""); |
| } |
| |
| testEventInitFunction("compositionevent", "CompositionEvent", "initCompositionEvent"); |
| testEventInitFunction("hashchangeevent", "HashChangeEvent", "initHashChangeEvent"); |
| testEventInitFunction("keyboardevent", "KeyboardEvent", "initKeyboardEvent"); |
| testEventInitFunction("messageevent", "MessageEvent", "initMessageEvent"); |
| testEventInitFunction("textevent", "TextEvent", "initTextEvent"); |
| testEventInitFunction("uievent", "UIEvent", "initUIEvent"); |
| testEventInitFunction("storageevent", "StorageEvent", "initStorageEvent"); |
| |
| </script> |
| </body> |
| </html> |