1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
<!doctype html>
<title>Test dragend target should be same as dragstart</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="/tests/SimpleTest/EventUtils.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
<style>
</style>
<div draggable="true" id="draggable">
<span id="start">Outer1</span>
<span id="end">Outer2</span>
</div>
<input id="dropzone" />
<script>
const selection = window.getSelection();
const start = document.getElementById("start");
const end = document.getElementById("end");
const dropzone = document.getElementById("dropzone");
add_task(async function test_dragend_target() {
selection.setBaseAndExtent(start.firstChild, 2, end.firstChild, 5);
let dragstartTarget = new Promise( r => {
start.addEventListener("dragstart", function(e) {
r(e.target);
});
});
let dragendTarget = new Promise( r => {
start.addEventListener("dragend", function(e) {
r(e.target);
});
});
await synthesizePlainDragAndDrop({
srcElement: start,
destElement: dropzone
});
is(dropzone.value, "ter1 Outer", "drag and drop success");
await Promise.all([dragstartTarget, dragendTarget]).then(values => {
ok(values[0] == values[1], "dragstart's target and dragend's target");
ok(values[0] == start.firstChild, "the target should be the start");
});
dropzone.value = '';
selection.empty();
});
add_task(async function test_dragend_target() {
selection.setBaseAndExtent(start.firstChild, 2, end.firstChild, 5);
let dragstartTarget = new Promise( r => {
end.addEventListener("dragstart", function(e) {
r(e.target);
});
});
let dragendTarget = new Promise( r => {
end.addEventListener("dragend", function(e) {
r(e.target);
});
});
await synthesizePlainDragAndDrop({
srcElement: end,
destElement: dropzone
});
is(dropzone.value, "ter1 Outer", "drag and drop success");
await Promise.all([dragstartTarget, dragendTarget]).then(values => {
ok(values[0] == values[1], "dragstart's target and dragend's target");
ok(values[0] == end.firstChild, "the target should be the end");
});
dropzone.value = '';
});
</script>
|