| 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 |
| |