| Test WebKitMutationObserver.observe on a subtree |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| Testing basic aspects of subtree observation. |
| ...attribute and characterData changes in subtree |
| PASS mutations.length is 2 |
| PASS mutations[0].type is "attributes" |
| PASS mutations[0].target is subDiv |
| PASS mutations[0].attributeName is "foo" |
| PASS mutations[0].attributeNamespace is null |
| PASS mutations[1].type is "characterData" |
| PASS mutations[1].target is subDiv.firstChild |
| |
| Testing two observers at different depths. |
| PASS mutations.length is 1 |
| PASS mutations[0].type is "attributes" |
| PASS mutations[0].target is subDiv |
| PASS mutations[0].attributeName is "foo" |
| PASS mutations[0].attributeNamespace is null |
| PASS mutations2.length is 1 |
| PASS mutations2[0].type is "attributes" |
| PASS mutations2[0].target is subDiv |
| PASS mutations2[0].attributeName is "foo" |
| PASS mutations2[0].attributeNamespace is null |
| |
| Testing one observer at two different depths. |
| PASS calls is 1 |
| PASS mutations.length is 1 |
| PASS mutations[0].type is "attributes" |
| PASS mutations[0].target is subDiv |
| PASS mutations[0].attributeName is "foo" |
| PASS mutations[0].attributeNamespace is null |
| |
| Testing that transiently detached nodes are still observed via subtree. |
| ...both changes should be received. Change detached subDiv again. |
| PASS mutations.length is 2 |
| PASS mutations[0].type is "attributes" |
| PASS mutations[0].target is subDiv |
| PASS mutations[0].attributeName is "foo" |
| PASS mutations[1].type is "attributes" |
| PASS mutations[1].target is subDiv |
| PASS mutations[1].attributeName is "test" |
| ...transient subtree observation was stopped after delivery, so subDiv change should not be received. Reattach and change again. |
| PASS mutations is null |
| ...reattached subtree should now be observable. Try detaching and re-observing. |
| PASS mutations.length is 1 |
| PASS mutations[0].type is "attributes" |
| PASS mutations[0].target is subDiv |
| PASS mutations[0].attributeName is "foo" |
| ...The change made before re-observing should be received, but not the one after. |
| PASS mutations.length is 1 |
| PASS mutations[0].type is "characterData" |
| PASS mutations[0].target is subDiv.firstChild |
| |
| Testing correct behavior of transient observation with complex movement . |
| ...All changes should be received except for setting the "d" attribute on subDiv3 before it was reachable from div. |
| PASS mutations.length is 6 |
| PASS mutations[0].type is "attributes" |
| PASS mutations[0].target is subDiv |
| PASS mutations[0].attributeName is "a" |
| PASS mutations[1].type is "attributes" |
| PASS mutations[1].target is subDiv2 |
| PASS mutations[1].attributeName is "b" |
| PASS mutations[2].type is "characterData" |
| PASS mutations[2].target is text |
| PASS mutations[3].type is "attributes" |
| PASS mutations[3].target is subDiv2 |
| PASS mutations[3].attributeName is "e" |
| PASS mutations[4].type is "attributes" |
| PASS mutations[4].target is subDiv3 |
| PASS mutations[4].attributeName is "f" |
| PASS mutations[5].type is "attributes" |
| PASS mutations[5].target is subDiv2 |
| PASS mutations[5].attributeName is "g" |
| |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |