51 lines
1.4 KiB
HTML
51 lines
1.4 KiB
HTML
<meta charset="UTF-8">
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<div id="test"></div>
|
|
<script>
|
|
if (window.internals)
|
|
internals.setContinuousSpellCheckingEnabled(false); // For performance.
|
|
|
|
description("This test checks that we have simple caret motion up to a certain limit");
|
|
|
|
function hasSimpleCaretMovement(charCode) {
|
|
var testString = "aaaaa" + String.fromCharCode(charCode) + "bbbb";
|
|
element.textContent = testString;
|
|
var selection = window.getSelection();
|
|
selection.setPosition(element, 0);
|
|
for (var i = 0; i < testString.length; ++i) {
|
|
selection.modify("move", "forward", "character");
|
|
if (selection.baseOffset != i + 1)
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function toHex(i) {
|
|
var hex = i.toString(16);
|
|
while (hex.length < 4)
|
|
hex = "0" + hex;
|
|
return hex;
|
|
}
|
|
|
|
var element = document.getElementById("test");
|
|
|
|
debug("Positive control:");
|
|
shouldBeTrue("hasSimpleCaretMovement(0x0041)");
|
|
debug("");
|
|
|
|
debug("Negative control:");
|
|
shouldBeFalse("hasSimpleCaretMovement(0x0300)");
|
|
debug("");
|
|
|
|
debug("Brute force:");
|
|
for (var i = 1; i < 1024; ++i) {
|
|
if (i >= 0x0300 && i <= 0x036F)
|
|
shouldBeFalse("hasSimpleCaretMovement(i) // i = U+" + toHex(i));
|
|
else
|
|
shouldBeTrue("hasSimpleCaretMovement(i) // i = U+" + toHex(i));
|
|
}
|
|
|
|
element.textContent = "";
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|