summaryrefslogtreecommitdiffstats
path: root/browser/components/newtab/test/browser/browser_newtab_trigger.js
blob: dbc1b71e2172d5eaa85bf43f1f2e28907d6b3cce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

const { ASRouter } = ChromeUtils.import(
  "resource://activity-stream/lib/ASRouter.jsm"
);

let sendTriggerMessageSpy;
let triggerMatch;

add_setup(function () {
  let sandbox = sinon.createSandbox();
  sendTriggerMessageSpy = sandbox.spy(ASRouter, "sendTriggerMessage");
  triggerMatch = sandbox.match({ id: "defaultBrowserCheck" });

  registerCleanupFunction(() => {
    sandbox.restore();
  });
});

async function testPageTrigger(url, waitForLoad, expectedTrigger) {
  sendTriggerMessageSpy.resetHistory();
  let tab = await BrowserTestUtils.openNewForegroundTab(
    gBrowser,
    url,
    waitForLoad
  );

  await BrowserTestUtils.waitForCondition(
    () => sendTriggerMessageSpy.calledWith(expectedTrigger),
    `After ${url} finishes loading`
  );
  Assert.ok(
    sendTriggerMessageSpy.calledWith(expectedTrigger),
    `Found the expected ${expectedTrigger.id} trigger`
  );

  BrowserTestUtils.removeTab(tab);
  sendTriggerMessageSpy.resetHistory();
}

add_task(function test_newtab_trigger() {
  return testPageTrigger("about:newtab", false, triggerMatch);
});

add_task(function test_abouthome_trigger() {
  return testPageTrigger("about:home", true, triggerMatch);
});