tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>