<!DOCTYPE html>
<html>
<head>
<script>
testRunner.waitUntilDone();
</script>
<script src='../../../fast/forms/resources/picker-common.js'></script>
</head>
<body>
<input type='color' id='color' value='#80D9FF'>

<p id='description' style='opacity: 0'></p>
<div id='console' style='opacity: 0'></div>

<script>
openPickerAppearanceOnly(document.getElementById('color'), openPickerSuccessfulCallback);

function openPickerSuccessfulCallback() {
  popupWindow.focus();
  const popupDocument = popupWindow.document;
  const colorWell = popupDocument.querySelector('color-well');
  const colorWellRect = colorWell.getBoundingClientRect();
  eventSender.mouseMoveTo(colorWellRect.left + (colorWellRect.width * 4 / 10), colorWellRect.top + (colorWellRect.height * 6 / 10));
  eventSender.mouseDown();
  eventSender.mouseUp();
  testRunner.notifyDone();
}
</script>
</body>
</html>