blob: 381ff6925cb0698ddbbe6c5e994653e173bf3865 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/js-test.js"></script>
<script src="resources/expect-cursor-update.js"></script>
<style type="text/css">
#test-container {
position: relative;
padding: 10px;
}
#target {
cursor: text;
background-color: blue;
width: 100px;
height: 100px;
}
#overlay {
cursor: wait;
width: 200px;
height: 200px;
background: rgba(255,0,0,0.2);
position: absolute;
left: 0;
top: 0;
}
</style>
<p id="description"></p>
<p><a href="http://crbug.com/26723">Bug 26723</a></p>
<div id="test-container">
<div id="target"></div>
</div>
<br/>
<div id="console"></div>
<script>
description("Test that mouse cursors are changed correctly after layout.");
// Ensure the shouldBe calls don't trigger layouts during our testing.
setPrintTestResultsLazily();
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
window.jsTestIsAsync = true;
}
var overlay;
function addOverlay() {
var testContainer = document.getElementById('test-container');
overlay = document.createElement('div');
overlay.id='overlay';
testContainer.appendChild(overlay);
}
// Can't do anything useful here without eventSender
if (window.eventSender) {
var target = document.getElementById('target');
eventSender.dragMode = false;
debug('Mouse move');
var rect = target.getBoundingClientRect();
eventSender.mouseMoveTo(rect.left + 3, rect.top + 3);
shouldBeEqualToString('internals.getCurrentCursorInfo()', 'type=IBeam hotSpot=0,0');
debug('Adding overlay element');
addOverlay();
expectSendFakeMouseMove('type=Wait hotSpot=0,0', function() {
debug('Moving overlay element');
overlay.style.top = "100px";
expectSendFakeMouseMove('type=IBeam hotSpot=0,0', function() {
finishJSTest();
});
});
} else {
testFailed('This test requires DumpRenderTree. Click to manually update layout.');
document.addEventListener('click', addOverlay);
}
</script>