| <!DOCTYPE html> |
| |
| <body> |
| <script src="../../../resources/js-test-pre.js"></script> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var mutations = []; |
| var observer = new MutationObserver(function(mutations, observer) { |
| window.mutations = window.mutations.concat(mutations); |
| }); |
| observer.observe(document.body, {childList: true, subtree:true}); |
| </script> |
| |
| <p> |
| Mutation records should be delivered for all parser mutations after the above script. |
| </p> |
| |
| <!-- Test parserRemoveChild and takeAllChildrenFrom doing the adoption agency algorithm. --> |
| <a><figure><iframe></iframe></a> |
| |
| <!-- Test parserInsertBefore doing hoisting of elements from tables. --> |
| <table> |
| <div></div> |
| </table> |
| |
| <script> |
| shouldBe('mutations.length', '22'); |
| for (var i = 0; i < mutations.length; i++) |
| shouldBeEqualToString('mutations[' + i + '].type', 'childList'); |
| shouldBeEqualToString('mutations[1].target.tagName', 'BODY'); |
| shouldBe('mutations[1].addedNodes.length', '1'); |
| shouldBeEqualToString('mutations[1].addedNodes[0].tagName', 'P'); |
| shouldBeEqualToString('mutations[9].target.tagName', 'A'); |
| shouldBeEqualToString('mutations[9].removedNodes[0].tagName', 'FIGURE'); |
| shouldBe('mutations[9].removedNodes.length', '1'); |
| shouldBe('mutations[9].addedNodes.length', '0'); |
| shouldBeEqualToString('mutations[18].target.tagName', 'FIGURE'); |
| shouldBe('mutations[18].addedNodes.length', '1'); |
| shouldBe('mutations[18].removedNodes.length', '0'); |
| shouldBeEqualToString('mutations[18].addedNodes[0].tagName', 'DIV'); |
| </script> |
| </body> |