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

    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>
