<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Selection drag and drop: events after dragenter is cancelled</title>
<script type="application/ecmascript">
function selectText()
	{window.getSelection().selectAllChildren(document.querySelector('p'))}
function start(event)
	{event.preventDefault();}
function dragMe(event)
	{say('FAIL (drag event should not fire if dragstart is cancelled)');}
function enterBody(event)
	{event.preventDefault();
	say('FAIL (dragover event should not fire if dragstart is cancelled)');}
function overBody(event)
	{event.preventDefault();
	say('FAIL (dragover event should not fire if dragstart is cancelled)');}
function dropIt(event)
	{say('FAIL (drop event should not fire if dragstart is cancelled)');}
function say(it)
	{document.querySelector('pre').appendChild(document.createTextNode(it + '\n'));}
</script>
</head>
<body onload="selectText()" ondragenter="enterBody(event)" ondragover="overBody(event)" ondrop="dropIt(event)">
<p ondragstart="start(event)" ondrag="dragMe(event)">Try to drag me</p>
<p>You should not be able to drag text selection above.</p>
<pre/>
</body>
</html>