blob: 11301e531010ce6bbd1560a867282c27b153354d [file] [log] [blame] [edit]
<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test.js"></script>
<script src="../../resources/accessibility-helper.js"></script>
</head>
<body id="body">
<div id="content">
<div id="contenteditable" contenteditable="true" role="textbox">HelloWorld</div>
<input type="text" id="text" value="Hello world">
<textarea id="textarea">Hello world</textarea>
</div>
<script>
var result = "This tests that the replace with range API functions as expected.\n\n";
if (window.accessibilityController) {
window.jsTestIsAsync = true;
var contenteditable = accessibilityController.accessibleElementById("contenteditable");
var text = accessibilityController.accessibleElementById("text");
var textarea = accessibilityController.accessibleElementById("textarea");
setTimeout(async function() {
result += expect('contenteditable.replaceTextInRange("Blurb", 5, 5)', "true");
await waitFor(() => contenteditable.stringValue == "AXValue: HelloBlurb");
result += expect("contenteditable.stringValue", "'AXValue: HelloBlurb'");
// now test what happens when a control has focus
document.getElementById("contenteditable").focus();
result += expect('contenteditable.replaceTextInRange("Blorg", 5, 5)', "true");
await waitFor(() => contenteditable.stringValue == "AXValue: HelloBlorg");
result += expect("contenteditable.stringValue", "'AXValue: HelloBlorg'");
document.getElementById("contenteditable").blur();
result += expect('text.replaceTextInRange("blurb", 6, 5)', "true");
await waitFor(() => text.stringValue == "AXValue: Hello blurb");
result += expect("text.stringValue", "'AXValue: Hello blurb'");
result += expect('textarea.replaceTextInRange("blurb", 6, 5)', "true");
await waitFor(() => textarea.stringValue == "AXValue: Hello blurb");
result += expect("textarea.stringValue", "'AXValue: Hello blurb'");
document.getElementById("content").style.visibility = "hidden";
debug(result);
finishJSTest();
}, 0);
}
</script>
</body>
</html>