diff options
Diffstat (limited to 'dom/events/test/test_bug1264380.html')
-rw-r--r-- | dom/events/test/test_bug1264380.html | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/dom/events/test/test_bug1264380.html b/dom/events/test/test_bug1264380.html new file mode 100644 index 0000000000..9349e9712f --- /dev/null +++ b/dom/events/test/test_bug1264380.html @@ -0,0 +1,82 @@ +<html> +<head> + <title>Test the dragstart event on the anchor in side shadow DOM</title> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <script src="/tests/SimpleTest/EventUtils.js"></script> +<script> + +async function runTests() +{ + let dragService = SpecialPowers.Cc["@mozilla.org/widget/dragservice;1"]. + getService(SpecialPowers.Ci.nsIDragService); + + let iframe = document.querySelector("iframe"); + let iframeDoc = iframe.contentDocument; + let iframeWin = iframe.contentWindow; + + let shadow = iframeDoc.querySelector('#outer').attachShadow({mode: 'open'}); + + let target = iframeDoc.createElement('a'); + target.textContent = "Drag me if you can!"; + const URL = "http://www.mozilla.org/"; + target.href = URL; + shadow.appendChild(target); + + // Some of the drag data we don't actually care about for this test, + // so we'll use this comparator function to ignore them. + function ignoreFunc(actualData, expectedData) { + return true; + } + + const EXPECTED_DRAG_DATA = [[{ + type: "text/x-moz-url", + data: "", + eqTest: ignoreFunc, + }, { + type: "text/x-moz-url-data", + data: "", + eqTest: ignoreFunc, + }, { + type: "text/x-moz-url-desc", + data: "", + eqTest: ignoreFunc, + }, { + type: "text/uri-list", + data: URL, + }, { + type: "text/_moz_htmlinfo", + data: "", + eqTest: ignoreFunc, + }, { + type: "text/html", + data: "", + eqTest: ignoreFunc, + }, { + type: "text/plain", + data: URL, + }]]; + + let result = await synthesizePlainDragAndCancel( + { + srcElement: target, + srcWindow: iframeWin, + finalY: -10, // Avoid clicking the link + }, + EXPECTED_DRAG_DATA); + ok(result === true, "Should have gotten the expected drag data."); + SimpleTest.finish(); +} + + +SimpleTest.waitForExplicitFinish(); +window.onload = () => { + SimpleTest.waitForFocus(runTests); +}; + +</script> + +<body> + <iframe srcdoc='<div id="outer"/>'></iframe> +</body> +</html> |