blob: 2de75ccf67e88ad7634bcdee8a4831c4ed2904df [file] [log] [blame]
<!DOCTYPE html>
<title>DataTransfer.prototype.setDragImage type checking of image argument</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<div id="dragger" draggable="true">Drag to run test</div>
<script>
async_test(function () {
var dragger = document.getElementById("dragger");
dragger.addEventListener("dragstart", this.step_func_done(function(event) {
assert_throws(new TypeError(), function() {
event.dataTransfer.setDragImage(null, 0, 0);
}, "throw if image argument is null");
assert_throws(new TypeError(), function() {
event.dataTransfer.setDragImage(dragger.firstChild, 0, 0);
}, "throw if image argument is a Text node");
// A generic non-HTML/SVG Element should not throw.
event.dataTransfer.setDragImage(document.createElementNS(null, "x"), 0, 0);
// Remove dragger to hide the manual instructions in expectations.
dragger.remove();
}));
if (!window.eventSender)
return;
var x = dragger.offsetLeft + dragger.offsetWidth / 2;
var y = dragger.offsetTop + dragger.offsetHeight / 2;
eventSender.mouseMoveTo(x, y);
eventSender.mouseDown();
eventSender.leapForward(100);
eventSender.mouseMoveTo(x + 100, y + 100);
eventSender.mouseUp();
});
</script>