<html>
<head>
<script>
// This test case is based on the test case http://data.ici-bas.fr/chromiumissue10879/.
window.changed = false;
function checkForChange()
{
    if (!location.search)
        return true;
        
    if (!window.changed && document.getElementById("field").value != "")
        log("FAIL");
    else
        log("PASS");
    return false;
}

function log(msg)
{
    document.getElementById("log").appendChild(document.createTextNode(msg + "\n"));
}
</script>
</head>
<body>
<p id="description">This test verifies that on autocompletion the 'onchange' event is fired.</p>
<p>Steps to reproduce:</p>
<ol>
  <li>In the input field, type the word &quot;apple&quot; (without quotes). Then click the button Submit or hit the return/enter 
  key on your keyboard</li>
  <li>Once the page reloads, in the input field, type &quot;ap&quot; (without quotes) and let the browser autocomplete the word (or select 
  &quot;apple&quot; from the autocompletion drop-down list contextual menu). Then click the button Submit or hit the return/enter 
  key on your keyboard.</li>
</ol>
<form method="get" onsubmit="return checkForChange()">
    <p><input type="text" name="field" id="field" value="" onchange="window.changed = true"/></p>
    <p><input type="submit" value="Submit"/></p>
</form>
<pre id="log"></pre>
</body>
</html>
