<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<style>
.target {
border:solid thick yellow;
}
.pass {
border:solid thick green;
}
</style>
<div id="container">
<p>Drag the object with yellow borders. Repeat until all objects become green.</p>
<ol>
<li><video> being draggable makes sense: <a href="https://crbug.com/451307">crbug.com/451307</a><br>
<video class="draggable" draggable="true" src=" [...mp4]" width="336" height="69"></video></li>
<li><input type=button> being draggable is not defined: <a href="https://crbug.com/440820">crbug.com/440820</a><br>
<input class="draggable" draggable="true" type="button" value="button" /></li>
<li><input type=text> being draggable is not defined: <a href="https://crbug.com/440820">crbug.com/440820</a><br>
<input class="draggable" draggable="true" value="input" /></li>
<li><textarea> should be simialr to <input type=text><br>
<textarea class="draggable" draggable="true">textarea</textarea></li>
<li><input type=text> within draggable div is not defined: <a href="https://crbug.com/417170">crbug.com/417170</a><br>
<div class="draggable" draggable="true"><input value="input within draggable div" /></div></li>
</ol>
</div>
<script>
setup({ explicit_done: true });
document.body.offsetLeft;
var container = document.getElementById("container");
var draggables = document.querySelectorAll(".draggable");
var dragStartCount = 0;
container.addEventListener("dragstart", function (e) {
var target = e.target;
console.log("dragstart" + e.target);
assert_equals(target, draggables[dragStartCount]);
target.classList.add("pass");
target.classList.remove("target");
if (++dragStartCount == draggables.length)
done();
else
draggables[dragStartCount].classList.add("target");
});
test(function () {
if (window.eventSender) {
Array.prototype.forEach.call(draggables, function (element) {
dragAndDrop(element);
});
} else {
draggables[0].classList.add("target");
}
}, "draggables should be draggable");
function dragAndDrop(element) {
var rect = element.getBoundingClientRect();
var x = rect.left + rect.width / 2;
var y = rect.top + rect.height / 2;
eventSender.mouseMoveTo(x, y);
eventSender.mouseDown();
eventSender.leapForward(400);
eventSender.mouseMoveTo(x + 100, y + 100);
eventSender.mouseUp();
}
if (window.testRunner)
container.style.display = "none";
</script>