<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=596506
-->
<head>
  <title>Test for Bug 596506</title>
  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=596506">Mozilla Bug 596506</a>
<p id="display"></p>
<div id="content" style="display: none">

</div>
<pre id="test">
<script type="application/javascript">

/** Test for Bug 596506 **/

SimpleTest.waitForExplicitFinish();
SimpleTest.waitForFocus(runTest);

const kIsMac = navigator.platform.indexOf("Mac") == 0;

function append(str) {
  for (var i = 0; i < str.length; ++i) {
    synthesizeKey(str[i], {});
  }
}

function runTest() {
  var edit = document.getElementById("edit");
  edit.focus();

  append("First");
  synthesizeKey("VK_RETURN", {});
  append("Second");
  synthesizeKey("VK_UP", {});
  synthesizeKey("VK_UP", {});
  if (kIsMac) {
    synthesizeKey("VK_RIGHT", {accelKey: true});
  } else {
    synthesizeKey("VK_END", {});
  }
  append("ly");
  is(edit.value, "Firstly\nSecond",
     "Pressing end should position the cursor before the terminating newline");
  SimpleTest.finish();
}

</script>
</pre>

<textarea id="edit"></textarea>

</body>
</html>