<!doctype html>
<html lang="en">
<head>
	<style>
	p, div {
		font: 12px/1 monospace;
	}
	.box {
		width: 260px;
		height: 120px;
		padding: 5px;
		margin: 10px;
	}
	
	#region {
		-webkit-flow-from: flow;
		width: 300px;
		height: 190px;
		border: 5px solid green;
		border-left: 100px solid green;
		background-color: #ddddff;
	}
	#region:hover {
		border-color: darkred;
		-webkit-flow-from: none;
	}

	#content {
		-webkit-flow-into: flow;
		border: 5px solid blue;
	}
	</style>
</head>

<script type="text/javascript">
	if (window.testRunner)
		testRunner.waitUntilDone();

	function beginTest() {
		if (window.eventSender) {
			var region  = document.querySelector("#region");

			// move mouse on the hover test object
			eventSender.mouseMoveTo(region.offsetLeft + 20, region.offsetTop + 20);
			eventSender.mouseDown(0);

			testRunner.notifyDone();
		}
	}
</script>

<body onload="beginTest()">
	<p>When hovering the <span style="color:green"><b>region</b></span>, the <span style="color:blue"><b>blue</b></span> box should disappear (the region's <b>flow-from</b> will change to "none")</p>
	<div id="region"></div>
	<div id="content" class="box">This box is flowed into the <span style="color:green"><b>region</b></span></div>
</body>
</html>