Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!doctype html>
<html>
<head>
<link rel="stylesheet" href="/tests/SimpleTest/test.css">
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="/tests/SimpleTest/EventUtils.js"></script>
</head>
<body>
<input id="input">
<script type="application/javascript">
// In nsEditorEventListener, when listening event is not created with proper
// event interface, it asserts the fact.
SimpleTest.waitForExplicitFinish();
var gInputElement = document.getElementById("input");
function getEditor(aInputElement) {
var editableElement = SpecialPowers.wrap(aInputElement);
ok(editableElement.editor, "There is no editor for the input element");
return editableElement.editor;
}
var gEditor;
function testNotGenerateCompositionByCreatedEvents(aEventInterface) {
var compositionEvent = document.createEvent(aEventInterface);
if (compositionEvent.initCompositionEvent) {
compositionEvent.initCompositionEvent("compositionstart", true, true, window, "", "");
} else if (compositionEvent.initMouseEvent) {
compositionEvent.initMouseEvent("compositionstart", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
}
gInputElement.dispatchEvent(compositionEvent);
ok(!gEditor.composing, "Composition shouldn't be started with a created compositionstart event (" + aEventInterface + ")");
compositionEvent = document.createEvent(aEventInterface);
if (compositionEvent.initCompositionEvent) {
compositionEvent.initCompositionEvent("compositionupdate", true, false, window, "abc", "");
} else if (compositionEvent.initMouseEvent) {
compositionEvent.initMouseEvent("compositionupdate", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
}
gInputElement.dispatchEvent(compositionEvent);
ok(!gEditor.composing, "Composition shouldn't be started with a created compositionupdate event (" + aEventInterface + ")");
is(gInputElement.value, "", "Input element shouldn't be modified with a created compositionupdate event (" + aEventInterface + ")");
compositionEvent = document.createEvent(aEventInterface);
if (compositionEvent.initCompositionEvent) {
compositionEvent.initCompositionEvent("compositionend", true, false, window, "abc", "");
} else if (compositionEvent.initMouseEvent) {
compositionEvent.initMouseEvent("compositionend", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
}
gInputElement.dispatchEvent(compositionEvent);
ok(!gEditor.composing, "Composition shouldn't be committed with a created compositionend event (" + aEventInterface + ")");
is(gInputElement.value, "", "Input element shouldn't be committed with a created compositionend event (" + aEventInterface + ")");
}
function doTests() {
gInputElement.focus();
gEditor = getEditor(gInputElement);
testNotGenerateCompositionByCreatedEvents("CompositionEvent");
testNotGenerateCompositionByCreatedEvents("MouseEvent");
SimpleTest.finish();
}
SimpleTest.waitForFocus(doTests);
</script>
</body>
</html>