<!DOCTYPE HTML>
<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Testcase #3 for bug 448329</title>
</head>
<body>

<iframe id="frame448329"></iframe>

<script>

function test448329(id,cmd,val) {

  var elm = document.getElementById(id);
  var doc = elm.contentDocument;
  doc.designMode = "On";

  // Work around getSelection depending on a presshell but not flushing to get
  // one.
  doc.body.offsetWidth;
  var s = doc.defaultView.getSelection();

  // Test document node
  if (s.rangeCount > 0)
    s.removeAllRanges();
  var range = doc.createRange();
  range.setStart(doc, 0);
  range.setEnd(doc, 0);
  s.addRange(range);
  doc.execCommand(cmd,false,val);

  // Test HTML node
  if (s.rangeCount > 0)
    s.removeAllRanges();
  range = doc.createRange();
  range.setStart(doc.documentElement, 0);
  range.setEnd(doc.documentElement, 0);
  s.addRange(range);
  doc.execCommand(cmd,false,val);

  // Test BODY node
  if (s.rangeCount > 0)
    s.removeAllRanges();
  range = doc.createRange();
  var body = doc.documentElement.childNodes[1];
  range.setStart(body, 0);
  range.setEnd(body, 0);
  s.addRange(range);
  doc.execCommand(cmd,false,val);

  var text = doc.createTextNode("Hello Kitty");
  body.insertBefore(text, null)

  // Test TEXT node
  if (s.rangeCount > 0)
    s.removeAllRanges();
  range = doc.createRange();
  range.setStart(text, 0);
  range.setEnd(text, 1);
  s.addRange(range);
  doc.execCommand(cmd,false,val);

  // Test BODY[0,0] + TEXT node
  if (s.rangeCount > 0)
    s.removeAllRanges();
  range = doc.createRange();
  range.setStart(body, 0);
  range.setEnd(body, 0);
  s.addRange(range);
  range = doc.createRange();
  range.setStart(text, 0);
  range.setEnd(text, 1);
  s.addRange(range);
  doc.execCommand(cmd,false,val);

  // Test BODY[0,1] + TEXT node
  if (s.rangeCount > 0)
    s.removeAllRanges();
  range = doc.createRange();
  range.setStart(body, 0);
  range.setEnd(body, 1);
  s.addRange(range);
  range = doc.createRange();
  range.setStart(text, 0);
  range.setEnd(text, 1);
  s.addRange(range);
  doc.execCommand(cmd,false,val);

  // Test BODY[0,1] + TEXT node without a parent
  if (s.rangeCount > 0)
    s.removeAllRanges();
  range = doc.createRange();
  range.setStart(body, 0);
  range.setEnd(body, 1);
  s.addRange(range);
  range = doc.createRange();
  text = doc.createTextNode("Hello Kitty"); // not in doc
  range.setStart(text, 0);
  range.setEnd(text, 1);
  s.addRange(range);
  doc.execCommand(cmd,false,val);

}

test448329("frame448329", "backcolor", "green")
test448329("frame448329", "hilitecolor", "green")

</script>


</body>
</html>