chromium/third_party/blink/web_tests/fast/dom/shadow/cppevent-in-shadow.html

<!DOCTYPE html>
<html>
<body>
<script src="../resources/event-sender-util.js"></script>
<script src="../../../resources/js-test.js"></script>

<div id="host"></div>
<pre id="console"></pre>

<script>
function addListeners(element, name) {
    var eventNames = ['copy', 'cut', 'paste'];
    for (var i = 0; i < eventNames.length; ++i) {
        (function(i) {
             element.addEventListener(eventNames[i], function(e) {
                 debug(name + ': ' + eventNames[i] + ' is fired.');
             });
        })(i);
    }
}

function createBox(name) {
    var div = document.createElement('div');
    div.style.width = '100px';
    div.style.height = '100px';
    div.setAttribute('contenteditable', true);

    return div;
}


var shadowRoot = host.attachShadow({mode: 'open'});
var div = document.createElement('div');
shadowRoot.appendChild(div);

var darkRoot = div.attachShadow({mode: 'open'});
var box = createBox('dark');
box.innerHTML = "Kotori Otonashi";
darkRoot.appendChild(box);

addListeners(box, 'dark');
addListeners(host, 'host');

if (window.eventSender) {
    eventSender.mouseMoveTo(box.offsetLeft, box.offsetTop + box.offsetHeight / 2);
    eventSender.mouseDown();
    eventSender.mouseMoveTo(box.offsetLeft + box.offsetWidth, box.offsetTop + box.offsetHeight / 2);
    eventSender.mouseUp();
}

document.execCommand('copy');
document.execCommand('cut');
document.execCommand('paste');

var successfullyParsed = true;
</script>

</body>
</html>