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 C=99 H=100 G=99
¤ Dauer der Verarbeitung: 0.27 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland