diff options
Diffstat (limited to 'browser/components/migration/tests/unit/test_Safari_bookmarks.js')
-rw-r--r-- | browser/components/migration/tests/unit/test_Safari_bookmarks.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/browser/components/migration/tests/unit/test_Safari_bookmarks.js b/browser/components/migration/tests/unit/test_Safari_bookmarks.js new file mode 100644 index 000000000..edc32dc72 --- /dev/null +++ b/browser/components/migration/tests/unit/test_Safari_bookmarks.js @@ -0,0 +1,46 @@ +"use strict"; + +add_task(function* () { + registerFakePath("ULibDir", do_get_file("Library/")); + + let migrator = MigrationUtils.getMigrator("safari"); + // Sanity check for the source. + Assert.ok(migrator.sourceExists); + + // Wait for the imported bookmarks. Check that "From Safari" + // folders are created on the toolbar. + let source = MigrationUtils.getLocalizedString("sourceNameSafari"); + let label = MigrationUtils.getLocalizedString("importedBookmarksFolder", [source]); + + let expectedParents = [ PlacesUtils.toolbarFolderId ]; + let itemCount = 0; + + let bmObserver = { + onItemAdded(aItemId, aParentId, aIndex, aItemType, aURI, aTitle) { + if (aTitle != label) { + itemCount++; + } + 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, false); + + yield promiseMigration(migrator, MigrationUtils.resourceTypes.BOOKMARKS); + PlacesUtils.bookmarks.removeObserver(bmObserver); + + // Check the bookmarks have been imported to all the expected parents. + Assert.ok(!expectedParents.length, "No more expected parents"); + Assert.equal(itemCount, 13, "Should import all 13 items."); + // Check that the telemetry matches: + Assert.equal(MigrationUtils._importQuantities.bookmarks, itemCount, "Telemetry reporting correct."); +}); |