diff options
Diffstat (limited to '')
-rw-r--r-- | dom/html/test/test_bug1785739.html | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/dom/html/test/test_bug1785739.html b/dom/html/test/test_bug1785739.html new file mode 100644 index 0000000000..2c87c57bd0 --- /dev/null +++ b/dom/html/test/test_bug1785739.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>nsFind::Find() should initialize the editor</title> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<link rel="stylesheet" href="/tests/SimpleTest/test.css"> +<input value="1abc1 + 2abc2 + 3abc3 + 4abc4 + 5abc5 + 6abc6 + 7abc7 + 8abc8 + 9abc9" id="input"> +<script> + SimpleTest.waitForExplicitFinish(); + + // The current window.find() impl does not support text controls, so import the internal component + const finder = + SpecialPowers + .Cc["@mozilla.org/typeaheadfind;1"] + .getService(SpecialPowers.Ci.nsITypeAheadFind); + + finder.init(SpecialPowers.wrap(window).docShell); + + function find() { + return finder.find( + "abc", + false, + SpecialPowers.Ci.nsITypeAheadFind.FIND_NEXT, + true); + } + + async function runTests() { + finder.find("abc", false, SpecialPowers.Ci.nsITypeAheadFind.FIND_FIRST, true); + // Wait until layout flush as the bug repro needs it + await new Promise(requestAnimationFrame); + + for (let i = 0; i < 9; i++) { + find(); + await new Promise(requestAnimationFrame); + is(input.selectionStart, (i * 19) + 1); + } + + SimpleTest.finish(); + } + window.addEventListener("load", runTests); +</script> |