forked from mirrors/gecko-dev
81 lines
2.8 KiB
JavaScript
81 lines
2.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const { sinon } = ChromeUtils.importESModule(
|
|
"resource://testing-common/Sinon.sys.mjs"
|
|
);
|
|
const { EdgeProfileMigrator } = ChromeUtils.importESModule(
|
|
"resource:///modules/EdgeProfileMigrator.sys.mjs"
|
|
);
|
|
const { MSMigrationUtils } = ChromeUtils.importESModule(
|
|
"resource:///modules/MSMigrationUtils.sys.mjs"
|
|
);
|
|
|
|
/**
|
|
* Tests that history visits loaded from the registry from Edge (EdgeHTML)
|
|
* that have a visit date older than maxAgeInDays days do not get imported.
|
|
*/
|
|
add_task(async function test_Edge_history_past_max_days() {
|
|
let sandbox = sinon.createSandbox();
|
|
registerCleanupFunction(() => {
|
|
sandbox.restore();
|
|
});
|
|
|
|
Assert.ok(
|
|
MigrationUtils.HISTORY_MAX_AGE_IN_DAYS < 300,
|
|
"This test expects the current pref to be less than the youngest expired visit."
|
|
);
|
|
Assert.ok(
|
|
MigrationUtils.HISTORY_MAX_AGE_IN_DAYS > 160,
|
|
"This test expects the current pref to be greater than the oldest unexpired visit."
|
|
);
|
|
|
|
const EXPIRED_VISITS = [
|
|
["https://test1.invalid/", dateDaysAgo(500).getTime() * 1000],
|
|
["https://test2.invalid/", dateDaysAgo(450).getTime() * 1000],
|
|
["https://test3.invalid/", dateDaysAgo(300).getTime() * 1000],
|
|
];
|
|
|
|
const UNEXPIRED_VISITS = [
|
|
["https://test4.invalid/"],
|
|
["https://test5.invalid/", dateDaysAgo(160).getTime() * 1000],
|
|
["https://test6.invalid/", dateDaysAgo(50).getTime() * 1000],
|
|
["https://test7.invalid/", dateDaysAgo(0).getTime() * 1000],
|
|
];
|
|
|
|
const ALL_VISITS = [...EXPIRED_VISITS, ...UNEXPIRED_VISITS];
|
|
|
|
// Fake out the getResources method of the migrator so that we return
|
|
// a single fake MigratorResource per availableResourceType.
|
|
sandbox.stub(MSMigrationUtils, "getTypedURLs").callsFake(() => {
|
|
return new Map(ALL_VISITS);
|
|
});
|
|
|
|
// Manually create an EdgeProfileMigrator rather than going through
|
|
// MigrationUtils.getMigrator to avoid the user data availability check, since
|
|
// we're mocking out that stuff.
|
|
let migrator = new EdgeProfileMigrator();
|
|
let registryTypedHistoryMigrator =
|
|
migrator.getHistoryRegistryMigratorForTesting();
|
|
await new Promise(resolve => {
|
|
registryTypedHistoryMigrator.migrate(resolve);
|
|
});
|
|
Assert.ok(true, "History from registry migration done!");
|
|
|
|
for (let expiredEntry of EXPIRED_VISITS) {
|
|
let entry = await PlacesUtils.history.fetch(expiredEntry[0], {
|
|
includeVisits: true,
|
|
});
|
|
Assert.equal(entry, null, "Should not have found an entry.");
|
|
}
|
|
|
|
for (let unexpiredEntry of UNEXPIRED_VISITS) {
|
|
let entry = await PlacesUtils.history.fetch(unexpiredEntry[0], {
|
|
includeVisits: true,
|
|
});
|
|
Assert.equal(entry.url, unexpiredEntry[0], "Should have the correct URL");
|
|
Assert.ok(!!entry.visits.length, "Should have some visits");
|
|
}
|
|
});
|