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