<!DOCTYPE html>
<html>
    <head>
        <title>List-item + :after pseudo-class</title>
        <style type="text/css">
#anchor {
    display: block;
}
#anchor:hover {}
#anchor:after {
    content: ".";
    display: block;
}
span {
    float: left;
}
        </style>
        <script type="application/javascript">
function run() {
    if (!window.testRunner)
        return;

    window.testRunner.dumpAsText();
    window.testRunner.waitUntilDone();
    window.eventSender.mouseMoveTo(0, 0);
    window.setTimeout(hover, 100);
}

function hover() {
    var element = document.getElementById('text');
    var x = element.offsetLeft + element.offsetWidth / 2;
    var y = element.offsetTop + element.offsetHeight / 2;
    window.eventSender.mouseMoveTo(x, y);
    window.setTimeout(finalize, 100);
}

function finalize() {
    window.testRunner.notifyDone();
}

window.addEventListener('load', run, false);
        </script>
    </head>
    <body>
        <p>This is a test for <a href="https://bugs.webkit.org/show_bug.cgi?id=30944">bug 30944</a>. Passes if it does not crash.</p>
        <ul>
            <li>
                <a id="anchor" href="#"><span id="text">Hover me</span></a>
            </li>
        </ul>
    </body>
</html>
