| <!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> |