gecko-dev/browser/components/migration/tests/unit/test_360se_bookmarks.js
Hector Zhao 193e57c8f4 Bug 1347530 - Part 1: Add a unit test for 360se bookmark imports. r=Gijs
MozReview-Commit-ID: 6DZVjePu3yS

--HG--
extra : rebase_source : d35a7e015ee4867a11a2ba728847a3feb11f2d75
2017-06-08 10:36:49 +08:00

58 lines
2.1 KiB
JavaScript

"use strict";
add_task(async function() {
registerFakePath("AppData", do_get_file("AppData/Roaming/"));
let migrator = MigrationUtils.getMigrator("360se");
// Sanity check for the source.
Assert.ok(migrator.sourceExists);
let profiles = migrator.sourceProfiles;
Assert.equal(profiles.length, 2, "Should present two profiles");
Assert.equal(profiles[0].name, "test@firefox.com.cn", "Current logged in user should be the first");
Assert.equal(profiles[profiles.length - 1].name, "Default", "Default user should be the last");
// Wait for the imported bookmarks. Check that "From 360 Secure Browser"
// folders are created on the toolbar.
let source = MigrationUtils.getLocalizedString("sourceName360se");
let label = MigrationUtils.getLocalizedString("importedBookmarksFolder", [source]);
let expectedParents = [ PlacesUtils.toolbarFolderId ];
let itemCount = 0;
let gotFolder = false;
let bmObserver = {
onItemAdded(aItemId, aParentId, aIndex, aItemType, aURI, aTitle) {
if (aTitle != label) {
itemCount++;
}
if (aItemType == PlacesUtils.bookmarks.TYPE_FOLDER && aTitle == "360 \u76f8\u5173") {
gotFolder = true;
}
if (expectedParents.length > 0 && aTitle == label) {
let index = expectedParents.indexOf(aParentId);
Assert.ok(index != -1, "Found expected parent");
expectedParents.splice(index, 1);
}
},
onBeginUpdateBatch() {},
onEndUpdateBatch() {},
onItemRemoved() {},
onItemChanged() {},
onItemVisited() {},
onItemMoved() {},
};
PlacesUtils.bookmarks.addObserver(bmObserver);
await promiseMigration(migrator, MigrationUtils.resourceTypes.BOOKMARKS, {
id: "default"
});
PlacesUtils.bookmarks.removeObserver(bmObserver);
// Check the bookmarks have been imported to all the expected parents.
Assert.ok(!expectedParents.length, "No more expected parents");
Assert.ok(gotFolder, "Should have seen the folder get imported");
Assert.equal(itemCount, 10, "Should import all 10 items.");
// Check that the telemetry matches:
Assert.equal(MigrationUtils._importQuantities.bookmarks, itemCount, "Telemetry reporting correct.");
});