products/Sources/formale Sprachen/C/Firefox/editor/libeditor/tests/test_bug1026397.html
<!DOCTYPE HTML >
<html >
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1026397
-->
<head >
<title >Test for Bug 1026397</title >
<script src="/tests/SimpleTest/SimpleTest.js" ></script >
<script src="/tests/SimpleTest/EventUtils.js" ></script >
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head >
<body >
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1026397 " >Mozilla Bug 1026397</a>
<p id="display" ></p>
<div id="content" >
<input id="input" >
</div >
<pre id="test" >
<script type="application/javascript" >
/** Test for Bug 1026397 **/
SimpleTest.waitForExplicitFinish();
function runTests() {
var input = document.getElementById("input" );
input .focus();
function doTest(aMaxLength, aInitialValue, aCaretOffset,
aInsertString, aExpectedValueDuringComposition,
aExpectedValueAfterCompositionEnd, aAdditionalExplanation) {
input .value = aInitialValue;
var maxLengthStr = "" ;
if (aMaxLength >= 0) {
input .maxLength = aMaxLength;
maxLengthStr = aMaxLength.toString();
} else {
input .removeAttribute("maxlength" );
maxLengthStr = "not specified" ;
}
input .selectionStart = input .selectionEnd = aCaretOffset;
if (aAdditionalExplanation) {
aAdditionalExplanation = " " + aAdditionalExplanation;
} else {
aAdditionalExplanation = "" ;
}
synthesizeCompositionChange(
{ "composition" :
{ "string" : aInsertString,
"clauses" :
[
{ "length" : aInsertString.length, "attr" : COMPOSITION_ATTR_RAW_CLAUSE },
],
},
"caret" : { "start" : aInsertString.length, "length" : 0 },
});
is(input .value, aExpectedValueDuringComposition,
"The value of input whose maxlength is " + maxLengthStr + " should be "
+ aExpectedValueDuringComposition + " during composition" + aAdditionalExplanation);
synthesizeComposition({ type: "compositioncommitasis" });
is(input .value, aExpectedValueAfterCompositionEnd,
"The value of input whose maxlength is " + maxLengthStr + " should be "
+ aExpectedValueAfterCompositionEnd + " after compositionend" + aAdditionalExplanation);
}
// maxlength hasn't been specified yet.
doTest(-1, "" , 0, "\uD842\uDFB7\u91CE\u5BB6" , "\uD842\uDFB7\u91CE\u5BB6" , "\uD842\uDFB7\u91CE\u5BB6" );
// maxlength="1"
doTest(1, "" , 0, "\uD842\uDFB7\u91CE\u5BB6" , "\uD842\uDFB7\u91CE\u5BB6" , "" );
// maxlength="2"
doTest(2, "" , 0, "\uD842\uDFB7\u91CE\u5BB6" , "\uD842\uDFB7\u91CE\u5BB6" , "\uD842\uDFB7" );
doTest(2, "X" , 1, "\uD842\uDFB7\u91CE\u5BB6" , "X\uD842\uDFB7\u91CE\u5BB6" , "X" );
doTest(2, "Y" , 0, "\uD842\uDFB7\u91CE\u5BB6" , "\uD842\uDFB7\u91CE\u5BB6Y" , "Y" );
// maxlength="3"
doTest(3, "" , 0, "\uD842\uDFB7\u91CE\u5BB6" , "\uD842\uDFB7\u91CE\u5BB6" , "\uD842\uDFB7\u91CE" );
doTest(3, "A" , 1, "\uD842\uDFB7\u91CE\u5BB6" , "A\uD842\uDFB7\u91CE\u5BB6" , "A\uD842\uDFB7" );
doTest(3, "B" , 0, "\uD842\uDFB7\u91CE\u5BB6" , "\uD842\uDFB7\u91CE\u5BB6B" , "\uD842\uDFB7B" );
doTest(3, "CD" , 1, "\uD842\uDFB7\u91CE\u5BB6" , "C\uD842\uDFB7\u91CE\u5BB6D" , "CD" );
// maxlength="4"
doTest(4, "EF" , 1, "\uD842\uDFB7\u91CE\u5BB6" , "E\uD842\uDFB7\u91CE\u5BB6F" , "E\uD842\uDFB7F" );
doTest(4, "GHI" , 1, "\uD842\uDFB7\u91CE\u5BB6" , "G\uD842\uDFB7\u91CE\u5BB6HI" , "GHI" );
// maxlength="1" , inputting only high surrogate
doTest(1, "" , 0, "\uD842" , "\uD842" , "\uD842" , "even if input string is only a high surrogate" );
// maxlength="1" , inputting only low surrogate
doTest(1, "" , 0, "\uDFB7" , "\uDFB7" , "\uDFB7" , "even if input string is only a low surrogate" );
SimpleTest.finish();
}
SimpleTest.waitForFocus(runTests);
</script >
</pre >
</body >
</html >
quality 100%
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.12Angebot
Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können
¤
*Eine klare Vorstellung vom Zielzustand