| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <script> |
| |
| description("This test checks the implementation of the element traversal APIs on Document as part of the ParentNode interface."); |
| |
| function createEmptyDocument() |
| { |
| var doc = document.implementation.createHTMLDocument(); |
| while (doc.firstChild) { |
| doc.removeChild(doc.firstChild); |
| } |
| return doc; |
| } |
| |
| debug('Test with no children'); |
| var noChildren = createEmptyDocument(); |
| shouldBe("noChildren.firstElementChild", "null"); |
| shouldBe("noChildren.lastElementChild", "null"); |
| shouldBe("noChildren.childElementCount", "0"); |
| |
| debug('Test with no element children'); |
| var noElementChildren = createEmptyDocument(); |
| noElementChildren.appendChild(document.createComment("comment but not an element")); |
| |
| shouldBe("noElementChildren.firstElementChild", "null"); |
| shouldBe("noElementChildren.lastElementChild", "null"); |
| shouldBe("noElementChildren.childElementCount", "0"); |
| |
| debug('Test with elements'); |
| var children = createEmptyDocument(); |
| children.appendChild(document.createComment("first comment")); |
| var child = document.createElement('p'); |
| children.appendChild(child); |
| children.appendChild(document.createComment("a comment")); |
| |
| shouldBe("children.firstElementChild", "child"); |
| shouldBe("children.lastElementChild", "child"); |
| shouldBe("children.childElementCount", "1"); |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |