Tests to ensure that shadow DOM boundary is not crossed during event propagation. Can only run within DRT.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".



Move mouse from a node to its sibling node. All nodes are outside of shadow boundary.
Moving mouse from divB to divC
PASS dispatchedEvent("mouseover") is ["divC(<-divB)(@divC)", "divC(<-divB)(@divA)"]
PASS dispatchedEvent("mouseout") is ["divB(<-divC)(@divB)", "divB(<-divC)(@divA)"]

Target is an ancestor of relatedTarget. All nodes are outside of shadow boundary.
Moving mouse from divB to divA
PASS dispatchedEvent("mouseover") is ["divA(<-divB)(@divA)"]
PASS dispatchedEvent("mouseout") is ["divB(<-divA)(@divB)", "divB(<-divA)(@divA)"]

RelatedTarget is an ancestor of target. All nodes are outside of shadow boundary.
Moving mouse from divA to divB
PASS dispatchedEvent("mouseover") is ["divB(<-divA)(@divB)", "divB(<-divA)(@divA)"]
PASS dispatchedEvent("mouseout") is ["divA(<-divB)(@divA)"]

Both target and relatedTarget are immediate children of the same shadow root.
Moving mouse from shadowD/shadowF/shadowG/divH to shadowD/shadowF/shadowG/divI
PASS dispatchedEvent("mouseover") is ["divI(<-divH)(@divI)"]
PASS dispatchedEvent("mouseout") is ["divH(<-divI)(@divH)"]

Target is an ancestor of relatedTarget.
Moving mouse from shadowD/shadowF/shadowG/divI to shadowD/divE
PASS dispatchedEvent("mouseover") is ["divE(<-shadowF)(@divE)"]
PASS dispatchedEvent("mouseout") is ["divI(<-divE)(@divI)", "shadowG(<-divE)(@shadowG)", "shadowF(<-divE)(@shadowF)", "shadowF(<-divE)(@divE)"]

Target (shadow host) is an ancestor of relatedTarget.
Moving mouse from shadowD/shadowF/shadowG/divI to shadowD/shadowF
PASS dispatchedEvent("mouseover") is []
PASS dispatchedEvent("mouseout") is ["divI(<-shadowF)(@divI)", "shadowG(<-shadowF)(@shadowG)"]

Target (shadow host) is an ancestor of relatedTarget (shadow host).
Moving mouse from shadowD/shadowF/shadowG to shadowD
PASS dispatchedEvent("mouseover") is []
PASS dispatchedEvent("mouseout") is ["shadowG(<-shadowD)(@shadowG)", "shadowF(<-shadowD)(@shadowF)", "shadowF(<-shadowD)(@divE)"]

RelatedTarget is ancestor of target.
Moving mouse from shadowD/divE to shadowD/shadowF/shadowG/divI
PASS dispatchedEvent("mouseover") is ["divI(<-divE)(@divI)", "shadowG(<-divE)(@shadowG)", "shadowF(<-divE)(@shadowF)", "shadowF(<-divE)(@divE)"]
PASS dispatchedEvent("mouseout") is ["divE(<-shadowF)(@divE)"]

RelatedTarget (shadow host) is ancestor of target.
Moving mouse from shadowD/shadowF to shadowD/shadowF/shadowG/divI
PASS dispatchedEvent("mouseover") is ["divI(<-shadowF)(@divI)", "shadowG(<-shadowF)(@shadowG)"]
PASS dispatchedEvent("mouseout") is []

RelatedTarget (shadow host) is an ancestor of target (shadow host).
Moving mouse from shadowD to shadowD/shadowF/shadowG
PASS dispatchedEvent("mouseover") is ["shadowG(<-shadowD)(@shadowG)", "shadowF(<-shadowD)(@shadowF)", "shadowF(<-shadowD)(@divE)"]
PASS dispatchedEvent("mouseout") is []

Target and relatedTarget exist in separated subtree, crossing shadow boundaries. Making sure that event is not dispatched beyond the lowest common boundary.
Moving mouse from shadowD/shadowF/shadowG/divH to shadowD/shadowK/divL
PASS dispatchedEvent("mouseover") is ["divL(<-shadowF)(@divL)", "shadowK(<-shadowF)(@shadowK)", "shadowK(<-shadowF)(@divJ)"]
PASS dispatchedEvent("mouseout") is ["divH(<-shadowK)(@divH)", "shadowG(<-shadowK)(@shadowG)", "shadowF(<-shadowK)(@shadowF)", "shadowF(<-shadowK)(@divE)"]

Move focus from a node to its sibling node. All nodes are outside of shadow boundary.
Moving focus from divB to divC
PASS dispatchedEvent("focusin") is ["divC(<-divB)(@divC)", "divC(<-divB)(@divA)"]
PASS dispatchedEvent("focusout") is ["divB(<-divC)(@divB)", "divB(<-divC)(@divA)"]

Old focused node and new focused node exist in separated subtrees, crossing shadow boundaries. Making sure that an event is not dispatched beyond the lowest common boundary.
Moving focus from shadowD/shadowF/shadowG/divH to shadowD/shadowK/divL
PASS dispatchedEvent("focusin") is ["divL(<-shadowF)(@divL)", "shadowK(<-shadowF)(@shadowK)", "shadowK(<-shadowF)(@divJ)"]
PASS dispatchedEvent("focusout") is ["divH(<-shadowK)(@divH)", "shadowG(<-shadowK)(@shadowG)", "shadowF(<-shadowK)(@shadowF)", "shadowF(<-shadowK)(@divE)"]

Move focus from a node to its sibling node. All nodes are outside of shadow boundary.
Moving focus from divB to divC
PASS dispatchedEvent("focus") is ["divC(<-divB)(@divA)(capturing phase)", "divC(<-divB)(@divC)"]
PASS dispatchedEvent("blur") is ["divB(<-divC)(@divA)(capturing phase)", "divB(<-divC)(@divB)"]

Old focused node and new focused node exist in separated subtrees, crossing shadow boundaries. Making sure that an event is not dispatched beyond the lowest common boundary.
Moving focus from shadowD/shadowF/shadowG/divH to shadowD/shadowK/divL
PASS dispatchedEvent("focus") is ["shadowK(<-shadowF)(@divJ)(capturing phase)", "divL(<-shadowF)(@divL)", "shadowK(<-shadowF)(@shadowK)"]
PASS dispatchedEvent("blur") is ["shadowF(<-shadowK)(@divE)(capturing phase)", "divH(<-shadowK)(@divH)", "shadowG(<-shadowK)(@shadowG)", "shadowF(<-shadowK)(@shadowF)"]
PASS successfullyParsed is true

TEST COMPLETE

