diff options
Diffstat (limited to 'browser/base/content/test/newtab/browser_newtab_bug723121.js')
-rw-r--r-- | browser/base/content/test/newtab/browser_newtab_bug723121.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/browser/base/content/test/newtab/browser_newtab_bug723121.js b/browser/base/content/test/newtab/browser_newtab_bug723121.js new file mode 100644 index 000000000..82f45ebd5 --- /dev/null +++ b/browser/base/content/test/newtab/browser_newtab_bug723121.js @@ -0,0 +1,42 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +add_task(function* () { + yield setLinks("0,1,2,3,4,5,6,7,8"); + setPinnedLinks(""); + + yield* addNewTabPageTab(); + + yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function*() { + let grid = content.gGrid; + let cell = grid.cells[0]; + let site = cell.site.node; + let link = site.querySelector(".newtab-link"); + + function checkGridLocked(aLocked, aMessage) { + Assert.equal(grid.node.hasAttribute("locked"), aLocked, aMessage); + } + + function sendDragEvent(aEventType, aTarget) { + let dataTransfer = new content.DataTransfer(aEventType, false); + let event = content.document.createEvent("DragEvent"); + event.initDragEvent(aEventType, true, true, content, 0, 0, 0, 0, 0, + false, false, false, false, 0, null, dataTransfer); + aTarget.dispatchEvent(event); + } + + checkGridLocked(false, "grid is unlocked"); + + sendDragEvent("dragstart", link); + checkGridLocked(true, "grid is now locked"); + + sendDragEvent("dragend", link); + checkGridLocked(false, "grid isn't locked anymore"); + + sendDragEvent("dragstart", cell.node); + checkGridLocked(false, "grid isn't locked - dragstart was ignored"); + + sendDragEvent("dragstart", site); + checkGridLocked(false, "grid isn't locked - dragstart was ignored"); + }); +}); |