summaryrefslogtreecommitdiffstats
path: root/docshell/test/browser/browser_bug554155.js
blob: efc74a1c16abb34c875b85f8faf7e2425e5155d3 (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
add_task(function* test() {
  yield BrowserTestUtils.withNewTab({ gBrowser, url: "http://example.com" }, function* (browser) {
    let numLocationChanges = 0;

    let listener = {
      onLocationChange: function(browser, webProgress, request, uri, flags) {
        info("location change: " + (uri && uri.spec));
        numLocationChanges++;
      }
    };

    gBrowser.addTabsProgressListener(listener);

    yield ContentTask.spawn(browser, null, function() {
      // pushState to a new URL (http://example.com/foo").  This should trigger
      // exactly one LocationChange event.
      content.history.pushState(null, null, "foo");
    });

    yield Promise.resolve();

    gBrowser.removeTabsProgressListener(listener);
    is(numLocationChanges, 1,
       "pushState should cause exactly one LocationChange event.");
  });
});