<script>

var createNewElement = function (tag, id, text) {
    var result = document.createElement(tag);
    result.setAttribute('id',id);
    result.innerHTML = text;
    return result;
};

var runTests = function () {
    document.getElementById("dt1").appendChild(createNewElement("summary", "new1", "new 1"));

    if (!window.testRunner || !window.eventSender)
        return;
    eventSender.mouseMoveTo(2, 2);
    eventSender.mouseDown();
    eventSender.mouseUp();
};

</script>

<body style="margin: 0px" onload="runTests()">
    <details open id="dt1">
        <summary id="summary1">summary</summary>
    </details>
</body>
