<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<svg viewBox="0 0 480 360" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
    <text font-size="58em" id="target">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</text>
    <use xlink:href="#target"></use>
</svg>
<script><![CDATA[
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
}

function keyDownMouseClick(x1, y1, x2, y2)
{
    if (!window.eventSender)
        return;
    eventSender.mouseMoveTo(x1, y1);
    eventSender.mouseDown();
    eventSender.mouseMoveTo(x2, y2);
    eventSender.mouseUp();
}

target = document.getElementById("target");
keyDownMouseClick(266, 322, 0, 0);
target.setAttribute("requiredFeatures", "unknown_feature"); 
keyDownMouseClick(226, 322, 0, 0);

document.body.innerHTML = "PASS";
testRunner.notifyDone();

]]></script>
</body>
</html>
