107 lines
3.7 KiB
HTML
107 lines
3.7 KiB
HTML
<style>
|
|
.box { width: 100px; height: 90px; margin-bottom: 10px; background-color: lightblue; }
|
|
.drag-element { -webkit-user-drag: element; }
|
|
.drag-none { -webkit-user-drag: none; }
|
|
a { display: block; width: 80px; height: 80px; background-color: yellow; font-family: ahem; font-size: 25px; }
|
|
a span { color: orange; }
|
|
a img { vertical-align: bottom; }
|
|
</style>
|
|
<div id="container" style="position: relative;">
|
|
<div class="box" expect="IMG nil">
|
|
<img src="resources/greenbox.png">
|
|
</div>
|
|
|
|
<div class="box" expect="nil nil">
|
|
<img class="drag-none" src="resources/greenbox.png">
|
|
</div>
|
|
|
|
<div class="box drag-element" expect="DIV DIV">
|
|
<img class="drag-none" src="resources/greenbox.png">
|
|
</div>
|
|
|
|
<div class="box" expect="IMG A A A nil">
|
|
<a href="#"><img src="resources/greenbox.png">x<br><span>y</span></a>
|
|
</div>
|
|
|
|
<div class="box" expect="IMG A A A nil">
|
|
<a href="#" class="drag-element"><img src="resources/greenbox.png">x<br><span>y</span></a>
|
|
</div>
|
|
|
|
<div class="box" expect="IMG nil nil nil nil">
|
|
<a href="#" class="drag-none"><img src="resources/greenbox.png">x<br><span>y</span></a>
|
|
</div>
|
|
|
|
<div class="box" expect="A A A A nil">
|
|
<a href="#"><img class="drag-none" src="resources/greenbox.png">x<br><span>y</span></a>
|
|
</div>
|
|
|
|
<div class="box" expect="A A A A nil">
|
|
<a href="#" class="drag-element"><img class="drag-none" src="resources/greenbox.png">x<br><span>y</span></a>
|
|
</div>
|
|
|
|
<div class="box drag-element" expect="IMG DIV DIV DIV DIV">
|
|
<a href="#" class="drag-none"><img src="resources/greenbox.png">x<br><span>y</span></a>
|
|
</div>
|
|
|
|
<div class="box drag-element" expect="A A A A DIV">
|
|
<a href="#"><img class="drag-none" src="resources/greenbox.png">x<br><span>y</span></a>
|
|
</div>
|
|
|
|
<div class="box drag-element" expect="A A A A DIV">
|
|
<a href="#" class="drag-element"><img class="drag-none" src="resources/greenbox.png">x<br><span>y</span></a>
|
|
</div>
|
|
</div>
|
|
<pre id="console"></pre>
|
|
<script>
|
|
function log(message)
|
|
{
|
|
document.getElementById("console").appendChild(document.createTextNode(message + "\n"));
|
|
}
|
|
|
|
onload = window.testRunner ? function()
|
|
{
|
|
testRunner.dumpAsText();
|
|
|
|
var container = document.getElementById("container");
|
|
var y = container.getBoundingClientRect().top;
|
|
for (var i = 0; i < container.childElementCount; ++i) {
|
|
var listener = function(event)
|
|
{
|
|
result = event.target.nodeType === Node.TEXT_NODE ? "text" : event.target.tagName;
|
|
};
|
|
|
|
container.addEventListener("dragstart", listener);
|
|
|
|
var child = container.children[i];
|
|
log("Test #" + i);
|
|
|
|
var expectedResults = child.getAttribute("expect").split(" ");
|
|
var result;
|
|
|
|
function test(h, v)
|
|
{
|
|
if (expectedResults.length) {
|
|
getSelection().empty();
|
|
result = "nil";
|
|
eventSender.mouseMoveTo(h, y - scrollY + v);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseMoveTo(220, y - scrollY + v);
|
|
eventSender.mouseUp();
|
|
var expected = expectedResults.shift();
|
|
log(result === expected ? "PASS" : "FAIL: expected " + expected + " but got " + result);
|
|
}
|
|
}
|
|
|
|
test(20, 20);
|
|
test(45, 20);
|
|
test(20, 45);
|
|
test(45, 45);
|
|
test(95, 85);
|
|
|
|
container.removeEventListener("dragstart", listener);
|
|
y += 100;
|
|
scrollBy(0, 100);
|
|
}
|
|
} : undefined;
|
|
</script>
|