/* 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/. */

"use strict";

const FOLDER_TITLE = '"quoted folder"';

function checkQuotedFolder() {
  let toolbar = PlacesUtils.getFolderContents(
    PlacesUtils.bookmarks.toolbarGuid
  ).root;

  // test for our quoted folder
  Assert.equal(toolbar.childCount, 1);
  var folderNode = toolbar.getChild(0);
  Assert.equal(folderNode.type, folderNode.RESULT_TYPE_FOLDER);
  Assert.equal(folderNode.title, FOLDER_TITLE);

  // clean up
  toolbar.containerOpen = false;
}

add_task(async function () {
  // make json file
  let jsonFile = PathUtils.join(PathUtils.profileDir, "bookmarks.json");

  let folder = await PlacesUtils.bookmarks.insert({
    parentGuid: PlacesUtils.bookmarks.toolbarGuid,
    title: FOLDER_TITLE,
    type: PlacesUtils.bookmarks.TYPE_FOLDER,
  });

  checkQuotedFolder();

  // export json to file
  await BookmarkJSONUtils.exportToFile(jsonFile);

  await PlacesUtils.bookmarks.remove(folder.guid);

  // restore json file
  await BookmarkJSONUtils.importFromFile(jsonFile, { replace: true });

  checkQuotedFolder();

  // clean up
  await IOUtils.remove(jsonFile);
});
