summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/newtab/browser_newtab_bug998387.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/newtab/browser_newtab_bug998387.js')
-rw-r--r--browser/base/content/test/newtab/browser_newtab_bug998387.js39
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");
+});