diff options
Diffstat (limited to 'browser/base/content/test/newtab/browser_newtab_bug998387.js')
-rw-r--r-- | browser/base/content/test/newtab/browser_newtab_bug998387.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/browser/base/content/test/newtab/browser_newtab_bug998387.js b/browser/base/content/test/newtab/browser_newtab_bug998387.js new file mode 100644 index 000000000..30424c2e5 --- /dev/null +++ b/browser/base/content/test/newtab/browser_newtab_bug998387.js @@ -0,0 +1,39 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +add_task(function* () { + // set max rows to 1, to avoid scroll events by clicking middle button + yield pushPrefs(["browser.newtabpage.rows", 1]); + yield setLinks("0"); + yield* addNewTabPageTab(); + // we need a second newtab to honor max rows + yield* addNewTabPageTab(); + + yield ContentTask.spawn(gBrowser.selectedBrowser, {index: 0}, function* (args) { + let {site} = content.wrappedJSObject.gGrid.cells[args.index]; + + let origOnClick = site.onClick; + site.onClick = e => { + origOnClick.call(site, e); + sendAsyncMessage("test:clicked-on-cell", {}); + }; + }); + + let mm = gBrowser.selectedBrowser.messageManager; + let messagePromise = new Promise(resolve => { + mm.addMessageListener("test:clicked-on-cell", function onResponse(message) { + mm.removeMessageListener("test:clicked-on-cell", onResponse); + resolve(); + }); + }); + + // Send a middle-click and make sure it happened + yield BrowserTestUtils.synthesizeMouseAtCenter(".newtab-control-block", + {button: 1}, gBrowser.selectedBrowser); + + yield messagePromise; + ok(true, "middle click triggered click listener"); + + // Make sure the cell didn't actually get blocked + yield* checkGrid("0"); +}); |