<html>
<head>
<style>
#forceSensor {
    width: 200px;
    height: 200px;
    border: 2px solid black;
}
</style>
<script>

function forceUp()
{
    var console = document.getElementById("console");
    console.innerHTML = "Success! The mouseforceup event was dispatched.";
    testRunner.notifyDone();
}

function startTest()
{
    var forceSensor = document.getElementById("forceSensor");
    forceSensor.addEventListener("webkitmouseforceup", forceUp, false);

    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    if (window.eventSender) {
        eventSender.mouseMoveTo(100, 100);
        eventSender.mouseForceDown();
        eventSender.mouseForceUp();
    }
}
</script>
</head>

<body onload="startTest()">

<div id="forceSensor"></div>
<pre id="console">Failed. This test must be run in the test harness.</pre>

</body>
</html>