<!DOCTYPE html>
<html>
<body>
<div id="container">
<button onclick="runTest()">Copy</button>
<div id="source" contenteditable><a href="javascript:dangerousCode()">hello</a>, <b onmouseover="dangerousCode()">world</b>. WebKit</div>
<div id="destination" onpaste="doPaste(event)" contenteditable>Paste here</div>
</div>
<script src="../../resources/js-test-pre.js"></script>
<script>

description('This tests copying and pasting a markup with an event handler and a javascript URL. WebKit should strip them away upon copy.');
jsTestIsAsync = true;

function dangerousCode() { }

function runTest() {
    source.focus();
    document.execCommand('selectAll');
    document.execCommand('copy');

    destination.focus();
    document.execCommand('selectAll');
    if (window.testRunner)
        document.execCommand('paste');
}

function doPaste(event) {
    html = event.clipboardData.getData('text/html');
    shouldBeTrue('html.includes("hello")');
    shouldBeTrue('html.includes("world")');
    shouldBeFalse('html.includes("dangerousCode")');

    container.remove();
    finishJSTest();
}

if (window.testRunner)
    window.onload = runTest;

successfullyParsed = true;

</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>