<html>
<body onload="test()">
<iframe src="resources/attribute-listener-test-subframe.html"></iframe>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function test()
{
    var doc = frames[0].document;
    var range=doc.createRange();
    range.selectNodeContents(doc.body);
    var frag=range.cloneContents();
    document.body.appendChild(frag);

    frames[0].location = "data:text/html,";
    frames[0].frameElement.onload = test2;
}

function test2()
{
    var event = top.document.createEvent('MouseEvent');
    event.initEvent('click', true, true);
    top.document.getElementsByTagName('a')[0].dispatchEvent(event);
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
</body>
</html>
