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 " >Mozil
la 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 >
Messung V0.5 C=96 H=99 G=97
¤ Dauer der Verarbeitung: 0.7 Sekunden
¤
*© Formatika GbR, Deutschland