summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/browser/browser_bug646422.js
blob: cb6512ed4e53cc053b9ef6097fbc6ce23b3f6f8d (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
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/**
 * Test for Bug 646224.  Make sure that after changing the URI via
 * history.pushState, the history service has a title stored for the new URI.
 **/

add_task(async function () {
  let tab = await BrowserTestUtils.openNewForegroundTab(
    gBrowser,
    "http://example.com"
  );

  const newTitlePromise = PlacesTestUtils.waitForNotification(
    "page-title-changed",
    events => /new_page$/.test(events[0].url)
  );

  await SpecialPowers.spawn(tab.linkedBrowser, [], async function () {
    let title = content.document.title;
    content.history.pushState("", "", "new_page");
    Assert.ok(title, "Content window should initially have a title.");
  });

  const events = await newTitlePromise;
  const newtitle = events[0].title;

  await SpecialPowers.spawn(
    tab.linkedBrowser,
    [{ newtitle }],
    async function (args) {
      Assert.equal(
        args.newtitle,
        content.document.title,
        "Title after pushstate."
      );
    }
  );

  await PlacesUtils.history.clear();
  gBrowser.removeTab(tab);
});