50 lines
2 KiB
JavaScript
50 lines
2 KiB
JavaScript
/* 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/. */
|
|
|
|
add_task(async function () {
|
|
registerCleanupFunction(PlacesUtils.history.clear);
|
|
|
|
const URIS = [
|
|
"https://example.com/tests/toolkit/components/places/tests/browser/399606-window.location.href.html",
|
|
"https://example.com/tests/toolkit/components/places/tests/browser/399606-history.go-0.html",
|
|
"https://example.com/tests/toolkit/components/places/tests/browser/399606-location.replace.html",
|
|
"https://example.com/tests/toolkit/components/places/tests/browser/399606-location.reload.html",
|
|
"https://example.com/tests/toolkit/components/places/tests/browser/399606-httprefresh.html",
|
|
"https://example.com/tests/toolkit/components/places/tests/browser/399606-window.location.html",
|
|
];
|
|
|
|
// Create and add history observer.
|
|
let count = 0;
|
|
let expectedURI = null;
|
|
function onVisitsListener(aEvents) {
|
|
for (let event of aEvents) {
|
|
info("Received onVisits: " + event.url);
|
|
if (event.url == expectedURI) {
|
|
count++;
|
|
}
|
|
}
|
|
}
|
|
|
|
async function promiseLoadedThreeTimes(uri) {
|
|
count = 0;
|
|
expectedURI = uri;
|
|
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
|
PlacesObservers.addListener(["page-visited"], onVisitsListener);
|
|
BrowserTestUtils.startLoadingURIString(gBrowser, uri);
|
|
await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, uri);
|
|
await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, uri);
|
|
await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, uri);
|
|
PlacesObservers.removeListener(["page-visited"], onVisitsListener);
|
|
BrowserTestUtils.removeTab(tab);
|
|
}
|
|
|
|
for (let uri of URIS) {
|
|
await promiseLoadedThreeTimes(uri);
|
|
is(
|
|
count,
|
|
1,
|
|
"'page-visited' has been received right number of times for " + uri
|
|
);
|
|
}
|
|
});
|