chromium/third_party/blink/web_tests/fast/events/programmatic-check-no-change-event.html

<html>
<head>
	<title>Untitled</title>
	<script type="text/javascript">

if (window.testRunner)
    testRunner.dumpAsText();
	
function debug(msg)
{
    var span = document.createElement("span");
    span.innerHTML = msg + '<br>';
    document.getElementById("console").appendChild(span);
}

var changeEventCount = 0;

		function main() {
			var cb = document.getElementById("myCheckbox");
			
			// This line should not fire a change event
			cb.checked = !cb.checked;
			
			// This line should fire a change event
			cb.click();
			
			// This line should not fire a change event
			cb.setAttribute("checked", "checked");

			if (changeEventCount != 1) {
			    debug("FAIL: expected 1 change event, got " + changeEventCount); 
			} else {
			    debug("PASS: got exactly one change event.");
			}
		}
	
	</script>
</head>
<body onload="main();">
<p>This test checks that programmaticly changing the checked state of
a checkbox does not fire the "change" event (but user action like
calling "click" does).</p>
<div id="console"></div>
	<input type="checkbox" id="myCheckbox" onchange="changeEventCount++">
</body>
</html>