function text(t) { return document.createTextNode(t); }
function element() { return document.createElement("div"); }
function cdata(t)
{
xmlDoc = $("xmlDocument").contentDocument;
// document.createCDATASection isn't implemented; clone for the win var node = xmlDoc.documentElement.firstChild.cloneNode(false);
is(node.nodeType, Node.CDATA_SECTION_NODE, "er, why isn't this a CDATA section node?");
node.data = t;
return node;
}
function firstTests()
{ var outer = element(); var first = text("first"); var second = element();
second.appendChild(text("element contents"));
outer.appendChild(first);
outer.appendChild(second);
is(first.wholeText, "first", "wrong wholeText for first");
var insertedText = text("-continued");
outer.insertBefore(insertedText, second);
is(first.wholeText, "first-continued", "wrong wholeText for first after insertedText insertion");
is(insertedText.wholeText, "first-continued", "wrong wholeText for insertedText after insertedText insertion");
var cdataNode = cdata("zero-")
outer.insertBefore(cdataNode, first);
is(first.wholeText, "zero-first-continued", "wrong wholeText for first after cdataNode insertion");
is(cdataNode.wholeText, "zero-first-continued", "wrong wholeText for cdataNode after cdataNode insertion");
is(insertedText.wholeText, "zero-first-continued", "wrong wholeText for insertedText after cdataNode insertion");
outer.insertBefore(element(), first);
is(first.wholeText, "first-continued", "wrong wholeText for first after element insertion");
is(cdataNode.wholeText, "zero-", "wrong wholeText for cdataNode after element insertion");
is(insertedText.wholeText, "first-continued", "wrong wholeText for insertedText after element insertion");
var cdataNode2 = cdata("-interrupted");
outer.insertBefore(cdataNode2, insertedText);
is(first.wholeText, "first-interrupted-continued", "wrong wholeText for first after cdataNode2 insertion");
is(cdataNode2.wholeText, "first-interrupted-continued", "wrong wholeText for cdataNode2 after cdataNode2 insertion");
is(insertedText.wholeText, "first-interrupted-continued", "wrong wholeText for insertedText after cdataNode2 insertion");
}
function middleTests()
{ var outer = element(); var first = element(); var last = element(); var middle = text("middle");
first.appendChild(text("first element contents"));
last.appendChild(text("last element contents"));
outer.appendChild(first);
outer.appendChild(middle);
outer.appendChild(last);
is(middle.wholeText, "middle", "wrong wholeText for middle");
var beforeMiddle = text("before-");
outer.insertBefore(beforeMiddle, middle);
is(middle.wholeText, "before-middle", "wrong wholeText for middle after beforeMiddle insertion");
is(beforeMiddle.wholeText, "before-middle", "wrong wholeText for beforeMiddle after beforeMiddle insertion");
var midElement = element();
midElement.appendChild(text("middle element"));
outer.insertBefore(midElement, middle);
is(middle.wholeText, "middle", "wrong wholeText for middle after midElement insertion");
is(beforeMiddle.wholeText, "before-", "wrong wholeText for beforeMiddle after midElement insertion");
var cdataNode = cdata("after");
outer.insertBefore(cdataNode, midElement);
is(cdataNode.wholeText, "before-after", "wrong wholeText for cdataNode after cdataNode insertion");
is(beforeMiddle.wholeText, "before-after", "wrong wholeText for beforeMiddle after cdataNode insertion");
is(middle.wholeText, "middle", "wrong wholeText for middle after cdataNode insertion");
var cdataNode2 = cdata("before-");
outer.insertBefore(cdataNode2, middle);
is(cdataNode.wholeText, "before-after", "wrong wholeText for cdataNode after cdataNode2 insertion");
is(beforeMiddle.wholeText, "before-after", "wrong wholeText for beforeMiddle after cdataNode2 insertion");
is(cdataNode2.wholeText, "before-middle", "wrong wholeText for middle after cdataNode2 insertion");
is(middle.wholeText, "before-middle", "wrong wholeText for middle after cdataNode2 insertion");
}
function lastTests()
{ var outer = element(); var first = element(); var second = text("second");
first.appendChild(text("element contents"));
outer.appendChild(first);
outer.appendChild(second);
is(second.wholeText, "second", "wrong wholeText for second");
var insertedText = text("before-");
outer.insertBefore(insertedText, second);
is(second.wholeText, "before-second", "wrong wholeText for second after insertedText insertion");
is(insertedText.wholeText, "before-second", "wrong wholeText for insertedText after insertedText insertion");
var cdataNode = cdata("zero-")
outer.insertBefore(cdataNode, insertedText);
is(cdataNode.wholeText, "zero-before-second", "wrong wholeText for cdataNode after cdataNode insertion");
is(second.wholeText, "zero-before-second", "wrong wholeText for second after cdataNode insertion");
is(insertedText.wholeText, "zero-before-second", "wrong wholeText for insertedText after cdataNode insertion");
outer.insertBefore(element(), second);
is(second.wholeText, "second", "wrong wholeText for second after element insertion");
is(cdataNode.wholeText, "zero-before-", "wrong wholeText for cdataNode after element insertion");
is(insertedText.wholeText, "zero-before-", "wrong wholeText for insertedText after element insertion");
var cdataNode2 = cdata("interrupted-");
outer.insertBefore(cdataNode2, insertedText);
is(second.wholeText, "second", "wrong wholeText for second after cdataNode2 insertion");
is(cdataNode2.wholeText, "zero-interrupted-before-", "wrong wholeText for cdataNode2 after cdataNode2 insertion");
is(insertedText.wholeText, "zero-interrupted-before-", "wrong wholeText for insertedText after cdataNode2 insertion");
}
function noParentTests()
{ var textNode = text("foobar");
is(textNode.wholeText, textNode.data, "orphaned textNode should have wholeText == data");
is(textNode.wholeText, "foobar", "orphaned textNode should have wholeText == 'foobar'");
var cdataSection = cdata("baz");
is(cdataSection.wholeText, cdataSection.data, "orphaned cdatasection should have wholeText == data");
is(cdataSection.wholeText, "baz", "orphaned cdatasection should have wholeText == data");
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.