tor-browser

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

browser_dragimage.js (2071B)


      1 const TEST_URI = "dragimage.html";
      2 
      3 add_setup(async function () {
      4  await SpecialPowers.pushPrefEnv({
      5    set: [["test.wait300msAfterTabSwitch", true]],
      6  });
      7 });
      8 
      9 // This test checks that dragging an image onto the same document
     10 // does not drop it, even when the page cancels the dragover event.
     11 add_task(async function dragimage_remote_tab() {
     12  var tab = await BrowserTestUtils.openNewForegroundTab(
     13    gBrowser,
     14    "http://www.example.com/browser/dom/events/test/" + TEST_URI
     15  );
     16 
     17  let dropHappened = false;
     18  let oldHandler = tab.linkedBrowser.droppedLinkHandler;
     19  tab.linkedBrowser.droppedLinkHandler = () => {
     20    dropHappened = true;
     21  };
     22 
     23  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
     24    let image = content.document.body.firstElementChild;
     25    let target = content.document.body.lastElementChild;
     26 
     27    await EventUtils.synthesizePlainDragAndDrop({
     28      srcElement: image,
     29      destElement: target,
     30      srcWindow: content,
     31      destWindow: content,
     32      id: content.windowUtils.DEFAULT_MOUSE_POINTER_ID,
     33    });
     34  });
     35 
     36  tab.linkedBrowser.droppedLinkHandler = oldHandler;
     37 
     38  ok(!dropHappened, "drop did not occur");
     39 
     40  BrowserTestUtils.removeTab(tab);
     41 });
     42 
     43 // This test checks the same but with an in-process page.
     44 add_task(async function dragimage_local_tab() {
     45  var tab = await BrowserTestUtils.openNewForegroundTab(
     46    gBrowser,
     47    getRootDirectory(gTestPath) + TEST_URI
     48  );
     49 
     50  let dropHappened = false;
     51  let oldHandler = tab.linkedBrowser.droppedLinkHandler;
     52  tab.linkedBrowser.droppedLinkHandler = () => {
     53    dropHappened = true;
     54  };
     55 
     56  let image = tab.linkedBrowser.contentDocument.body.firstElementChild;
     57  let target = tab.linkedBrowser.contentDocument.body.lastElementChild;
     58 
     59  await EventUtils.synthesizePlainDragAndDrop({
     60    srcElement: image,
     61    destElement: target,
     62    srcWindow: tab.linkedBrowser.contentWindow,
     63    destWindow: tab.linkedBrowser.contentWindow,
     64  });
     65 
     66  tab.linkedBrowser.droppedLinkHandler = oldHandler;
     67 
     68  ok(!dropHappened, "drop did not occur");
     69 
     70  BrowserTestUtils.removeTab(tab);
     71 });