diff options
Diffstat (limited to 'editor/libeditor/tests/test_bug490879.html')
-rw-r--r-- | editor/libeditor/tests/test_bug490879.html | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/editor/libeditor/tests/test_bug490879.html b/editor/libeditor/tests/test_bug490879.html new file mode 100644 index 0000000000..68458862db --- /dev/null +++ b/editor/libeditor/tests/test_bug490879.html @@ -0,0 +1,54 @@ +<!doctype html> +<title>Mozilla Bug 490879</title> +<link rel=stylesheet href="/tests/SimpleTest/test.css"> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=490879" + target="_blank">Mozilla Bug 490879</a> +<iframe id="i1" width="200" height="100" src="about:blank"></iframe> +<img id="i" src="green.png"> +<script> +async function runTest() { + function verifyContent() { + const kExpectedImgSpec = "data:image/png;base64,"; + var e = document.getElementById("i1"); + var doc = e.contentDocument; + is(doc.getElementsByTagName("img")[0].src.substring(0, kExpectedImgSpec.length), + kExpectedImgSpec, "The pasted image is a base64-encoded data: URI"); + } + + async function pasteInto() { + var e = document.getElementById("i1"); + var doc = e.contentDocument; + doc.designMode = "on"; + doc.defaultView.focus(); + var selection = doc.defaultView.getSelection(); + selection.removeAllRanges(); + selection.selectAllChildren(doc.body); + selection.collapseToEnd(); + + let input = new Promise(resolve => { + doc.body.addEventListener("input", resolve, {once: true}) + }); + + SpecialPowers.doCommand(window, "cmd_paste"); + + info("Waiting for input event"); + await input; + } + + function copyToClipBoard() { + SpecialPowers.setCommandNode(window, document.getElementById("i")); + SpecialPowers.doCommand(window, "cmd_copyImageContents"); + } + + copyToClipBoard(); + + await pasteInto(); + + verifyContent(); + SimpleTest.finish(); +} + +SimpleTest.waitForExplicitFinish(); +addLoadEvent(runTest); +</script> |