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