description("Test to make sure EntityReference nodes are always treated readonly") var xmlDoc = document.implementation.createDocument("http://www.w3.org/1999/xhtml", "html", null); var xmlDoc2 = document.implementation.createDocument("http://www.w3.org/1999/xhtml", "html", null); var entityReference = xmlDoc.createEntityReference("gt"); shouldThrow("xmlDoc2.adoptNode(entityReference)"); shouldBe("entityReference.ownerDocument", "xmlDoc") // nodeValue is defined to be null for Entity Reference nodes, and thus should silently fail to modify // Spec is ambigious as to if we should throw here or not. I've requested clarification: // http://lists.w3.org/Archives/Public/www-dom/2008JanMar/0009.html shouldThrow("entityReference.nodeValue = 'foo'"); shouldBe("entityReference.nodeValue", "null"); shouldThrow("entityReference.prefix = 'foo'"); shouldBe("entityReference.prefix", "null"); shouldThrow("entityReference.textContent = 'foo'"); shouldBe("entityReference.textContent", "'>'"); var childrenBeforeFailedAppend = entityReference.childNodes.length; shouldBe("childrenBeforeFailedAppend", "1"); var text = document.createTextNode("FAIL"); shouldThrow("entityReference.appendChild(text)"); shouldBe("entityReference.childNodes.length", "childrenBeforeFailedAppend"); childrenBeforeFailedAppend = entityReference.childNodes.length; shouldBe("childrenBeforeFailedAppend", "1"); shouldThrow("entityReference.insertBefore(text, entityReference.firstChild)"); shouldBe("entityReference.childNodes.length", "childrenBeforeFailedAppend"); var successfullyParsed = true;