gecko/browser/components/migration/tests/unit/test_IE_bookmarks.js

57 lines
2.0 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/. */
function run_test() {
do_test_pending();
let migrator = MigrationUtils.getMigrator("ie");
// Sanity check for the source.
do_check_true(migrator.sourceExists);
// Ensure bookmarks migration is available.
let availableSources = migrator.getMigrateData(null, false);
do_check_true((availableSources & MigrationUtils.resourceTypes.BOOKMARKS) > 0);
// Wait for the imported bookmarks. Check that "From Internet Explorer"
// folders are created in the menu and on the toolbar.
let source = MigrationUtils.getLocalizedString("sourceNameIE");
let label = MigrationUtils.getLocalizedString("importedBookmarksFolder", [source]);
let expectedParents = [ PlacesUtils.bookmarksMenuFolderId,
PlacesUtils.toolbarFolderId ];
PlacesUtils.bookmarks.addObserver({
onItemAdded: function onItemAdded(aItemId, aParentId, aIndex, aItemType,
aURI, aTitle) {
if (aTitle == label) {
let index = expectedParents.indexOf(aParentId);
do_check_neq(index, -1);
expectedParents.splice(index, 1);
if (expectedParents.length == 0)
PlacesUtils.bookmarks.removeObserver(this);
}
},
onBeginUpdateBatch: function () {},
onEndUpdateBatch: function () {},
onItemRemoved: function () {},
onItemChanged: function () {},
onItemVisited: function () {},
onItemMoved: function () {},
}, false);
// Wait for migration.
Services.obs.addObserver(function onMigrationEnded() {
Services.obs.removeObserver(onMigrationEnded, "Migration:Ended");
// Check the bookmarks have been imported to all the expected parents.
do_check_eq(expectedParents.length, 0);
do_test_finished();
}, "Migration:Ended", false);
migrator.migrate(MigrationUtils.resourceTypes.BOOKMARKS, null,
null);
}