83 lines
3.4 KiB
HTML
83 lines
3.4 KiB
HTML
<!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 getEditorIMESupport(aInputElement)
|
|
{
|
|
var editableElement = SpecialPowers.wrap(aInputElement).QueryInterface(SpecialPowers.Ci.nsIDOMNSEditableElement);
|
|
ok(editableElement, "The input element doesn't have nsIDOMNSEditableElement interface");
|
|
ok(editableElement.editor, "There is no editor for the input element");
|
|
var editorIMESupport = SpecialPowers.wrap(editableElement).editor.QueryInterface(SpecialPowers.Ci.nsIEditorIMESupport);
|
|
ok(editorIMESupport, "The input element doesn't have nsIEditorIMESupport interface");
|
|
return editorIMESupport;
|
|
}
|
|
|
|
var gEditorIMESupport;
|
|
|
|
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(!gEditorIMESupport.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(!gEditorIMESupport.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(!gEditorIMESupport.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();
|
|
gEditorIMESupport = getEditorIMESupport(gInputElement);
|
|
|
|
testNotGenerateCompositionByCreatedEvents("CompositionEvent");
|
|
testNotGenerateCompositionByCreatedEvents("MouseEvent");
|
|
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
SimpleTest.waitForFocus(doTests);
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|