blob: 0855fb7a85e59dadc0e7bd2d485532beb8f25cd1 [file] [log] [blame]
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