CONSOLE WARNING: Listener added for a synchronous 'DOMSubtreeModified' DOM Mutation Event. This event type is deprecated (https://w3c.github.io/uievents/#legacy-event-types) and work is underway to remove it from this browser. Usage of this event listener will cause performance issues today, and represents a risk of future incompatibility. Consider using MutationObserver instead.
Test WebKitMutationObserver.observe on CharacterData nodes
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Testing basic aspects of characterData observation.
...can characterData changes be observed at all
PASS mutations.length is 1
PASS mutations[0].type is "characterData"
PASS mutations[0].target is charDataNode
...observer.disconnect() should prevent further delivery of mutations.
PASS mutations is null
...re-observing after disconnect works with the same observer.
PASS mutations.length is 2
PASS mutations[0].type is "characterData"
PASS mutations[0].target is charDataNode
PASS mutations[1].type is "characterData"
PASS mutations[1].target is charDataNode
Testing that observing without specifying "characterData" does not result in hearing about characterData changes.
PASS mutations is null
Testing that multiple observers can be registered to a given node and both receive mutations.
PASS mutations.length is 1
PASS mutations[0].type is "characterData"
PASS mutations[0].target is charDataNode
PASS mutations2.length is 1
PASS mutations2[0].type is "characterData"
PASS mutations2[0].target is charDataNode
Testing mutation records are enqueued for characterData before DOMSubtreeModified is dispatched.
PASS mutations.length is 2
PASS mutations[0].type is "characterData"
PASS mutations[1].type is "attributes"
Testing that oldValue is returned when requested.
PASS mutations.length is 2
PASS mutations[0].type is "characterData"
PASS mutations[0].target is charDataNode
PASS mutations[0].oldValue is "foo"
PASS mutations[1].type is "characterData"
PASS mutations[1].target is charDataNode
PASS mutations[1].oldValue is "bar"
Testing that oldValue is delivered as requested (or not).
PASS mutationsWithOldValue.length is 1
PASS mutationsWithOldValue[0].type is "characterData"
PASS mutationsWithOldValue[0].oldValue is "foo"
PASS mutations.length is 1
PASS mutations[0].type is "characterData"
PASS mutations[0].oldValue is null
An observer with multiple observations will get characterDataOldValue if any entries request it.
PASS mutations.length is 1
PASS mutations[0].type is "characterData"
PASS mutations[0].oldValue is "foo"
PASS successfullyParsed is true
TEST COMPLETE