blob: 5c98b05d45020a394a011721e367d4e38917c403 [file] [log] [blame]
<!doctype html>
<!-- Used to test that the cursor can be repositioned while inputting text. -->
<html>
<head>
<!-- This isn't strictly necessary for this test, but without it, text
selection in text boxes doesn't work. We want it to work so we can
catch cases of repositioning erroneously selecting text. -->
<meta name='viewport' content='width=device-width'>
</head>
<body>
<script src="../../../../../../third_party/blink/web_tests/resources/testharness.js"></script>
<script src="../resources/webxr_e2e.js"></script>
<input id="textfield" type="text" style="width:100%" oninput="finishJavaScriptStep()" onclick="finishJavaScriptStep()"></input>
</body>
<script>
var t = async_test("Cursor can be repositioned for web text input");
function stepVerifyInitialString(expectedString) {
t.step(() => {
let actualString = document.getElementById("textfield").value;
assert_equals(actualString, expectedString,
"Initial text input did not work");
});
finishJavaScriptStep();
}
function stepVerifyDeletedString(expectedString) {
t.step(() => {
let actualString = document.getElementById("textfield").value;
assert_equals(actualString, expectedString,
"Text deletion at repositioned cursor did not work");
});
finishJavaScriptStep();
}
function stepVerifyInsertedString(baseString, modifiedCharacter) {
// The actual and given base string should only differ by the single
// given character.
t.step(() => {
let actualString = document.getElementById("textfield").value;
assert_equals(actualString.length, baseString.length,
"Actual and base string lengths differ");
let foundModifiedCharacter = false;
for (let i = 0; i < baseString.length; i++) {
if (baseString.charAt(i) != actualString.charAt(i)) {
assert_false(foundModifiedCharacter,
"Found multiple modified characters");
assert_equals(actualString.charAt(i), modifiedCharacter,
"Found modified character, but did not match expected character");
foundModifiedCharacter = true;
}
}
assert_true(foundModifiedCharacter,
"Did not find modified character in string");
});
t.done();
}
</script>
</html>