Blame dom/base/test/test_text_wholeText.html

Packit f0b94e
Packit f0b94e
<html>
Packit f0b94e
Packit f0b94e
https://bugzilla.mozilla.org/show_bug.cgi?id=421765
Packit f0b94e
-->
Packit f0b94e
<head>
Packit f0b94e
  <title>Text.wholeText tests</title>
Packit f0b94e
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
Packit f0b94e
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
Packit f0b94e
</head>
Packit f0b94e
<body>
Packit f0b94e
Mozilla Bug 421765
Packit f0b94e

Packit f0b94e
Packit f0b94e
Packit f0b94e
<iframe id="xmlDocument" src="wholeTexty-helper.xml"></iframe>
Packit f0b94e
Packit f0b94e
Packit f0b94e
<script class="testbody" type="text/javascript">
Packit f0b94e
Packit f0b94e
/** Test for Bug 421765 **/
Packit f0b94e
Packit f0b94e
SimpleTest.waitForExplicitFinish();
Packit f0b94e
Packit f0b94e
var xmlDoc;
Packit f0b94e
Packit f0b94e
function text(t) { return document.createTextNode(t); }
Packit f0b94e
function element() { return document.createElement("div"); }
Packit f0b94e
function cdata(t)
Packit f0b94e
{
Packit f0b94e
  xmlDoc = $("xmlDocument").contentDocument;
Packit f0b94e
  // document.createCDATASection isn't implemented; clone for the win
Packit f0b94e
  var node = xmlDoc.documentElement.firstChild.cloneNode(false);
Packit f0b94e
  is(node.nodeType, Node.CDATA_SECTION_NODE,
Packit f0b94e
     "er, why isn't this a CDATA section node?");
Packit f0b94e
  node.data = t;
Packit f0b94e
  return node;
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
Packit f0b94e
function firstTests()
Packit f0b94e
{
Packit f0b94e
  var outer = element();
Packit f0b94e
  var first = text("first");
Packit f0b94e
  var second = element();
Packit f0b94e
  second.appendChild(text("element contents"));
Packit f0b94e
  outer.appendChild(first);
Packit f0b94e
  outer.appendChild(second);
Packit f0b94e
Packit f0b94e
  is(first.wholeText, "first", "wrong wholeText for first");
Packit f0b94e
Packit f0b94e
  var insertedText = text("-continued");
Packit f0b94e
  outer.insertBefore(insertedText, second);
Packit f0b94e
Packit f0b94e
  is(first.wholeText, "first-continued",
Packit f0b94e
     "wrong wholeText for first after insertedText insertion");
Packit f0b94e
  is(insertedText.wholeText, "first-continued",
Packit f0b94e
     "wrong wholeText for insertedText after insertedText insertion");
Packit f0b94e
Packit f0b94e
  var cdataNode = cdata("zero-")
Packit f0b94e
  outer.insertBefore(cdataNode, first);
Packit f0b94e
Packit f0b94e
  is(first.wholeText, "zero-first-continued",
Packit f0b94e
     "wrong wholeText for first after cdataNode insertion");
Packit f0b94e
  is(cdataNode.wholeText, "zero-first-continued",
Packit f0b94e
     "wrong wholeText for cdataNode after cdataNode insertion");
Packit f0b94e
  is(insertedText.wholeText, "zero-first-continued",
Packit f0b94e
     "wrong wholeText for insertedText after cdataNode insertion");
Packit f0b94e
Packit f0b94e
  outer.insertBefore(element(), first);
Packit f0b94e
Packit f0b94e
  is(first.wholeText, "first-continued",
Packit f0b94e
     "wrong wholeText for first after element insertion");
Packit f0b94e
  is(cdataNode.wholeText, "zero-",
Packit f0b94e
     "wrong wholeText for cdataNode after element insertion");
Packit f0b94e
  is(insertedText.wholeText, "first-continued",
Packit f0b94e
     "wrong wholeText for insertedText after element insertion");
Packit f0b94e
Packit f0b94e
  var cdataNode2 = cdata("-interrupted");
Packit f0b94e
  outer.insertBefore(cdataNode2, insertedText);
Packit f0b94e
Packit f0b94e
  is(first.wholeText, "first-interrupted-continued",
Packit f0b94e
     "wrong wholeText for first after cdataNode2 insertion");
Packit f0b94e
  is(cdataNode2.wholeText, "first-interrupted-continued",
Packit f0b94e
     "wrong wholeText for cdataNode2 after cdataNode2 insertion");
Packit f0b94e
  is(insertedText.wholeText, "first-interrupted-continued",
Packit f0b94e
     "wrong wholeText for insertedText after cdataNode2 insertion");
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
function middleTests()
Packit f0b94e
{
Packit f0b94e
  var outer = element();
Packit f0b94e
  var first = element();
Packit f0b94e
  var last = element();
Packit f0b94e
  var middle = text("middle");
Packit f0b94e
  first.appendChild(text("first element contents"));
Packit f0b94e
  last.appendChild(text("last element contents"));
Packit f0b94e
  outer.appendChild(first);
Packit f0b94e
  outer.appendChild(middle);
Packit f0b94e
  outer.appendChild(last);
Packit f0b94e
Packit f0b94e
  is(middle.wholeText, "middle", "wrong wholeText for middle");
Packit f0b94e
Packit f0b94e
  var beforeMiddle = text("before-");
Packit f0b94e
  outer.insertBefore(beforeMiddle, middle);
Packit f0b94e
Packit f0b94e
  is(middle.wholeText, "before-middle",
Packit f0b94e
     "wrong wholeText for middle after beforeMiddle insertion");
Packit f0b94e
  is(beforeMiddle.wholeText, "before-middle",
Packit f0b94e
     "wrong wholeText for beforeMiddle after beforeMiddle insertion");
Packit f0b94e
Packit f0b94e
  var midElement = element();
Packit f0b94e
  midElement.appendChild(text("middle element"));
Packit f0b94e
  outer.insertBefore(midElement, middle);
Packit f0b94e
Packit f0b94e
  is(middle.wholeText, "middle",
Packit f0b94e
     "wrong wholeText for middle after midElement insertion");
Packit f0b94e
  is(beforeMiddle.wholeText, "before-",
Packit f0b94e
     "wrong wholeText for beforeMiddle after midElement insertion");
Packit f0b94e
Packit f0b94e
  var cdataNode = cdata("after");
Packit f0b94e
  outer.insertBefore(cdataNode, midElement);
Packit f0b94e
Packit f0b94e
  is(cdataNode.wholeText, "before-after",
Packit f0b94e
     "wrong wholeText for cdataNode after cdataNode insertion");
Packit f0b94e
  is(beforeMiddle.wholeText, "before-after",
Packit f0b94e
     "wrong wholeText for beforeMiddle after cdataNode insertion");
Packit f0b94e
  is(middle.wholeText, "middle",
Packit f0b94e
     "wrong wholeText for middle after cdataNode insertion");
Packit f0b94e
Packit f0b94e
  var cdataNode2 = cdata("before-");
Packit f0b94e
  outer.insertBefore(cdataNode2, middle);
Packit f0b94e
Packit f0b94e
  is(cdataNode.wholeText, "before-after",
Packit f0b94e
     "wrong wholeText for cdataNode after cdataNode2 insertion");
Packit f0b94e
  is(beforeMiddle.wholeText, "before-after",
Packit f0b94e
     "wrong wholeText for beforeMiddle after cdataNode2 insertion");
Packit f0b94e
  is(cdataNode2.wholeText, "before-middle",
Packit f0b94e
     "wrong wholeText for middle after cdataNode2 insertion");
Packit f0b94e
  is(middle.wholeText, "before-middle",
Packit f0b94e
     "wrong wholeText for middle after cdataNode2 insertion");
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
function lastTests()
Packit f0b94e
{
Packit f0b94e
  var outer = element();
Packit f0b94e
  var first = element();
Packit f0b94e
  var second = text("second");
Packit f0b94e
  first.appendChild(text("element contents"));
Packit f0b94e
  outer.appendChild(first);
Packit f0b94e
  outer.appendChild(second);
Packit f0b94e
Packit f0b94e
  is(second.wholeText, "second", "wrong wholeText for second");
Packit f0b94e
Packit f0b94e
  var insertedText = text("before-");
Packit f0b94e
  outer.insertBefore(insertedText, second);
Packit f0b94e
Packit f0b94e
  is(second.wholeText, "before-second",
Packit f0b94e
     "wrong wholeText for second after insertedText insertion");
Packit f0b94e
  is(insertedText.wholeText, "before-second",
Packit f0b94e
     "wrong wholeText for insertedText after insertedText insertion");
Packit f0b94e
Packit f0b94e
  var cdataNode = cdata("zero-")
Packit f0b94e
  outer.insertBefore(cdataNode, insertedText);
Packit f0b94e
Packit f0b94e
  is(cdataNode.wholeText, "zero-before-second",
Packit f0b94e
     "wrong wholeText for cdataNode after cdataNode insertion");
Packit f0b94e
  is(second.wholeText, "zero-before-second",
Packit f0b94e
     "wrong wholeText for second after cdataNode insertion");
Packit f0b94e
  is(insertedText.wholeText, "zero-before-second",
Packit f0b94e
     "wrong wholeText for insertedText after cdataNode insertion");
Packit f0b94e
Packit f0b94e
  outer.insertBefore(element(), second);
Packit f0b94e
Packit f0b94e
  is(second.wholeText, "second",
Packit f0b94e
     "wrong wholeText for second after element insertion");
Packit f0b94e
  is(cdataNode.wholeText, "zero-before-",
Packit f0b94e
     "wrong wholeText for cdataNode after element insertion");
Packit f0b94e
  is(insertedText.wholeText, "zero-before-",
Packit f0b94e
     "wrong wholeText for insertedText after element insertion");
Packit f0b94e
Packit f0b94e
  var cdataNode2 = cdata("interrupted-");
Packit f0b94e
  outer.insertBefore(cdataNode2, insertedText);
Packit f0b94e
Packit f0b94e
  is(second.wholeText, "second",
Packit f0b94e
     "wrong wholeText for second after cdataNode2 insertion");
Packit f0b94e
  is(cdataNode2.wholeText, "zero-interrupted-before-",
Packit f0b94e
     "wrong wholeText for cdataNode2 after cdataNode2 insertion");
Packit f0b94e
  is(insertedText.wholeText, "zero-interrupted-before-",
Packit f0b94e
     "wrong wholeText for insertedText after cdataNode2 insertion");
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
function noParentTests()
Packit f0b94e
{
Packit f0b94e
  var textNode = text("foobar");
Packit f0b94e
  is(textNode.wholeText, textNode.data,
Packit f0b94e
     "orphaned textNode should have wholeText == data");
Packit f0b94e
  is(textNode.wholeText, "foobar",
Packit f0b94e
     "orphaned textNode should have wholeText == 'foobar'");
Packit f0b94e
Packit f0b94e
  var cdataSection = cdata("baz");
Packit f0b94e
  is(cdataSection.wholeText, cdataSection.data,
Packit f0b94e
     "orphaned cdatasection should have wholeText == data");
Packit f0b94e
  is(cdataSection.wholeText, "baz",
Packit f0b94e
     "orphaned cdatasection should have wholeText == data");
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
function tests()
Packit f0b94e
{
Packit f0b94e
  try
Packit f0b94e
  {
Packit f0b94e
    firstTests();
Packit f0b94e
    middleTests();
Packit f0b94e
    lastTests();
Packit f0b94e
    noParentTests();
Packit f0b94e
  }
Packit f0b94e
  catch (e)
Packit f0b94e
  {
Packit f0b94e
    ok(false, "error thrown: " + e);
Packit f0b94e
  }
Packit f0b94e
  finally
Packit f0b94e
  {
Packit f0b94e
    SimpleTest.finish();
Packit f0b94e
  }
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
window.addEventListener("load", tests);
Packit f0b94e
</script>
Packit f0b94e
Packit f0b94e
</body>
Packit f0b94e
</html>
Packit f0b94e