chromium/third_party/blink/web_tests/touchadjustment/context-menu-shadow-node.html

<!DOCTYPE html>
<html>
<head>
    <title>Touch Adjustment : Handle long press on a shadow DOM element - bug 96313</title>
    <script src="../resources/js-test.js"></script>
    <script src="resources/touchadjustment.js"></script>
    <style>
        #sandbox {
            background: #00f;
            position: absolute;
            top: 0px;
            left: 0px;
            width: 100px;
            height: 100px;
        }
        #description {
          margin-top: 110px;
        }
    </style>
</head>

<body>

<div id="sandbox"></div>
<p id='description'></p>
<div id='console'></div>

<script>
    var sandbox = document.getElementById('sandbox');

    function addShadowDOM() {
        var targetDiv = document.getElementById("sandbox");
        var root = targetDiv.attachShadow({mode: 'open'});
        var shadowDiv = document.createElement("div");
        shadowDiv.style.width = "20px";
        shadowDiv.style.height = "20px";
        shadowDiv.style.background = "#ff0";
        shadowDiv.style.position = "absolute";
        shadowDiv.style.right = "10px";
        shadowDiv.style.top = "10px";
        root.appendChild(shadowDiv);
    }

    function runTests()
    {
        if (window.testRunner && window.internals && internals.touchNodeAdjustedToBestContextMenuNode) {
            description('Test touch adjustment for context-menu gestures on a shadow-DOM element.');
            addShadowDOM();
            // Test that a long press centered on a shadow-DOM element does not crash.
            testTouchPointContextMenu(touchPoint(80, 20, 10), null);
        }
    }
    runTests();
</script>
</body>
</html>