Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* 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/. */
/* eslint-disable mozilla/no-arbitrary-setTimeout */
// Test to make sure that the visited page titles do not get updated inside the
// private browsing mode.
"use strict";
add_task(async function test() {
const TEST_URL =
const TITLE_1 = "Title 1";
const TITLE_2 = "Title 2";
await PlacesUtils.history.clear();
let promiseTitleChanged = PlacesTestUtils.waitForNotification(
"page-title-changed",
events => events[0].url == TEST_URL
);
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_URL);
registerCleanupFunction(async () => {
BrowserTestUtils.removeTab(tab);
});
info("Wait for a title change notification.");
await promiseTitleChanged;
await BrowserTestUtils.waitForCondition(async function () {
let entry = await PlacesUtils.history.fetch(TEST_URL);
return entry && entry.title == TITLE_1;
}, "The title matches the original title after first visit");
promiseTitleChanged = PlacesTestUtils.waitForNotification(
"page-title-changed",
events => events[0].url == TEST_URL
);
await PlacesTestUtils.addVisits({ uri: TEST_URL, title: TITLE_2 });
info("Wait for a title change notification.");
await promiseTitleChanged;
await BrowserTestUtils.waitForCondition(async function () {
let entry = await PlacesUtils.history.fetch(TEST_URL);
return entry && entry.title == TITLE_2;
}, "The title matches the original title after updating visit");
let privateWin = await BrowserTestUtils.openNewBrowserWindow({
private: true,
});
registerCleanupFunction(async () => {
await BrowserTestUtils.closeWindow(privateWin);
});
await BrowserTestUtils.openNewForegroundTab(privateWin.gBrowser, TEST_URL);
// Wait long enough to be sure history didn't set a title.
await new Promise(resolve => setTimeout(resolve, 1000));
is(
(await PlacesUtils.history.fetch(TEST_URL)).title,
TITLE_2,
"The title remains the same after visiting in private window"
);
});