<html>
  <script>
    function runTest()
    {
      if (!window.eventSender)
        return;

      eventSender.mouseMoveTo(20, 120);
      eventSender.mouseDown();
      eventSender.leapForward(500);
      eventSender.mouseMoveTo(20, 50);
      eventSender.mouseUp();
    }
    var numFramesLoaded = 0;
    function frameLoaded()
    {
      if (++numFramesLoaded == 2)
        runTest();
    }
  </script>
  <frameset rows="100px, 100px, *">
    <frame onload="frameLoaded()" src="data:text/html,<html><body style='margin: 0 0 0 0;'><div style='height: 100px; border: solid 1px black;' contenteditable=true>
      This layout test is checks that we don't crash when a stand alone image is dragged into a content editable div. <br />
      <a href='rdar://problem/5021127'>rdar://problem/5021127</a>
    </div></body></html>">
    <frame src="resources/greenbox.png" onload="frameLoaded()">
  </frameset>
</html>
