<html>
<head>
<script>
if (window.layoutTestController)
     layoutTestController.dumpEditingCallbacks();
</script>

<script>
if (window.layoutTestController) {
    layoutTestController.waitUntilDone();
    layoutTestController.dumpAsText();
}
</script>
<script src="../editing.js"></script>
</head>
<body>
<div>Bug 9358: REGRESSION: Assertion failure in HTMLInputElement::setValueFromRenderer (value == constrainValue(value)) when deleting all text</div>
<div><a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=9358">http://bugzilla.opendarwin.org/show_bug.cgi?id=9358</a></div>
<div><br></div>
<form>
Assertion fails when all characters are deleted: <input type="text" id="t" value="X">
</form>
<script>
document.getElementById("t").focus();
document.execCommand("SelectAll");
document.execCommand("Delete");
</script>
<div>SUCCESS if the test didn't crash and you see this message.</div>
<script>
if (window.layoutTestController) {
    layoutTestController.notifyDone()
}
</script>
<body>
</html>
