"use strict";

/**
 * Test dragging a removable=false widget within its own area as well as to the palette.
 */
add_task(async function() {
  await startCustomizing();
  let forwardButton = document.getElementById("forward-button");
  is(forwardButton.getAttribute("removable"), "false", "forward-button should not be removable");
  ok(CustomizableUI.inDefaultState, "Should start in default state.");

  let urlbarContainer = document.getElementById("urlbar-container");
  let placementsAfterDrag = getAreaWidgetIds(CustomizableUI.AREA_NAVBAR);
  placementsAfterDrag.splice(placementsAfterDrag.indexOf("forward-button"), 1);
  placementsAfterDrag.splice(placementsAfterDrag.indexOf("urlbar-container"), 0, "forward-button");
  simulateItemDrag(forwardButton, urlbarContainer, "start");
  assertAreaPlacements(CustomizableUI.AREA_NAVBAR, placementsAfterDrag);
  ok(!CustomizableUI.inDefaultState, "Should no longer be in default state.");
  let palette = document.getElementById("customization-palette");
  simulateItemDrag(forwardButton, palette);
  is(CustomizableUI.getPlacementOfWidget("forward-button").area, CustomizableUI.AREA_NAVBAR, "forward-button was not able to move to palette");

  await endCustomizing();
  await resetCustomization();
  ok(CustomizableUI.inDefaultState, "Should be in default state again.");
});
