blob: 8a9d1711d33eebfefce12a5877757c3ee51fafa1 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<style>
#neutral { position:absolute; top:0px; left:100px; width:100px; height:100px; border:2px solid blue; }
#test { position:absolute; top:100px; left:100px; width:100px; height:100px; border:2px solid blue; }
#test div { border: 2px solid red; width: 10px; height: 10px; }
</style>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
var outputText = "";
function output(text) {
outputText += text + '<br>';
}
var mutateOnMouseOver = false;
function mouseOver() {
if (mutateOnMouseOver)
document.querySelector('#test').appendChild(document.createElement("div"));
output('mouseover');
}
function mouseOut() {
output('mouseout');
}
function mouseClick() {
output('mouseclick');
}
function getTapUIScript(x, y)
{
return `
(function() {
uiController.singleTapAtPoint(${x}, ${y}, function() {
uiController.uiScriptComplete("Done");
});
})();`
}
function test() {
if (!window.testRunner || !window.testRunner.runUIScript)
return;
// Test tapping in a div.
output("Tapping once");
testRunner.runUIScript(getTapUIScript(150, 150), function(result) {
output("Tapping again");
testRunner.runUIScript(getTapUIScript(150, 150), function(result) {
output("Tapping out");
testRunner.runUIScript(getTapUIScript(150, 50), function(result) {
output("Enabling mutation on mouseover");
mutateOnMouseOver = true;
output("Tapping once");
testRunner.runUIScript(getTapUIScript(150, 150), function(result) {
output("Tapping again");
testRunner.runUIScript(getTapUIScript(150, 150), function(result) {
document.querySelector('#output').innerHTML += outputText;
testRunner.notifyDone();
});
});
});
});
});
}
</script>
</head>
<body onload="test()">
<div>Test that if document is visibly mutated in mouseover handler then synthetic click is not generated until the next tap.</div>
<div id='neutral' onmouseover='' onmouseout='' onclick=''>
</div>
<div id='test' onmouseover='mouseOver()' onmouseout='mouseOut()' onclick='mouseClick()'>
</div>
<div id='output'></div>
</body>
</html>