зеркало из https://github.com/mozilla/gecko-dev.git
83 строки
2.0 KiB
HTML
83 строки
2.0 KiB
HTML
<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>
|