products/Sources/formale Sprachen/C/Firefox/dom/html/test/test_bug674558.html
<!
DOCTYPE HTML >
<
html >
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=674558
-->
<
head >
<
title >Test for Bug
674558 </
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=674558 " >Mozill
a Bug 674558 </a>
<p id="display" ></p>
<div id="content" >
</div >
<pre id="test" >
<script type="application/javascript" >
/** Test for Bug 674558 **/
SimpleTest.waitForExplicitFinish();
SimpleTest.waitForFocus(startTest);
function startTest() {
function textAreaCtor() {
return document.createElement("textarea" );
}
var ctors = [textAreaCtor];
["text" , "password" , "search" ].forEach(function(type) {
ctors.push(function inputCtor() {
var input = document.createElement("input" );
input .type = type;
return input ;
});
});
for (var ctor in ctors) {
test(ctors[ctor]);
}
SimpleTest.finish();
}
function test(ctor) {
var elem = ctor();
ok(true, "Testing " + name(elem));
ok("selectionDirection" in elem, "elem should have the selectionDirection property" );
is(elem.selectionStart, elem.value.length, "Default value" );
is(elem.selectionEnd, elem.value.length, "Default value" );
is(elem.selectionDirection, "forward" , "Default value" );
var content = document.getElementById("content" );
content.appendChild(elem);
function flush() { document.body .clientWidth; }
function hide() {
content.style .display = "none" ;
flush();
}
function show() {
content.style .display = "" ;
flush();
}
elem.value = "foobar" ;
is(elem.selectionStart, elem.value.length, "Default value" );
is(elem.selectionEnd, elem.value.length, "Default value" );
is(elem.selectionDirection, "forward" , "Default value" );
elem.setSelectionRange(1 , 3 );
is(elem.selectionStart, 1 , "Correct value" );
is(elem.selectionEnd, 3 , "Correct value" );
is(elem.selectionDirection, "forward" , "If not set, should default to forward" );
hide();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 3 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
show();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 3 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
// extend to right
elem.focus();
synthesizeKey("VK_RIGHT" , {shiftKey: true});
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Correct value" );
is(elem.selectionDirection, "forward" , "Still forward" );
hide();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
show();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
// change the direction
elem.selectionDirection = "backward" ;
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Correct value" );
hide();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
show();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
// extend to right again
synthesizeKey("VK_RIGHT" , {shiftKey: true});
is(elem.selectionStart, 2 , "Correct value" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Still backward" );
hide();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
show();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
elem.selectionEnd = 5 ;
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Correct value" );
is(elem.selectionDirection, "backward" , "Still backward" );
hide();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
show();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
elem.selectionDirection = "none" ;
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "none not supported" );
hide();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
show();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
elem.selectionDirection = "backward" ;
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Correct Value" );
hide();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
show();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
elem.selectionDirection = "invalid" ;
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Treated as none" );
hide();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
show();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
elem.selectionDirection = "backward" ;
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Correct Value" );
hide();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
show();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
elem.setSelectionRange(1 , 4 );
is(elem.selectionStart, 1 , "Correct value" );
is(elem.selectionEnd, 4 , "Correct value" );
is(elem.selectionDirection, "forward" , "Correct value" );
hide();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
show();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
elem.setSelectionRange(1 , 1 );
synthesizeKey("VK_RIGHT" , {shiftKey: true});
synthesizeKey("VK_RIGHT" , {shiftKey: true});
synthesizeKey("VK_RIGHT" , {shiftKey: true});
is(elem.selectionStart, 1 , "Correct value" );
is(elem.selectionEnd, 4 , "Correct value" );
is(elem.selectionDirection, "forward" , "Correct value" );
hide();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
show();
is(elem.selectionStart, 1 , "Value unchanged" );
is(elem.selectionEnd, 4 , "Value unchanged" );
is(elem.selectionDirection, "forward" , "Value unchanged" );
elem.setSelectionRange(5 , 5 );
synthesizeKey("VK_LEFT" , {shiftKey: true});
synthesizeKey("VK_LEFT" , {shiftKey: true});
synthesizeKey("VK_LEFT" , {shiftKey: true});
is(elem.selectionStart, 2 , "Correct value" );
is(elem.selectionEnd, 5 , "Correct value" );
is(elem.selectionDirection, "backward" , "Correct value" );
hide();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
show();
is(elem.selectionStart, 2 , "Value unchanged" );
is(elem.selectionEnd, 5 , "Value unchanged" );
is(elem.selectionDirection, "backward" , "Value unchanged" );
}
function name(elem) {
var tag = elem.localName;
if (tag == "input" ) {
tag += "[type=" + elem.type + "]" ;
}
return tag;
}
</script >
</pre >
</body >
</html >
Messung V0.5 in Prozent C=94 H=94 G=93
¤ Dauer der Verarbeitung: 0.24 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland