blob: e62fb0e68962dc5bc52f15e8b49453c27e601ec6 [file] [log] [blame]
<!DOCTYPE html>
<html>
<script src="../../../../resources/js-test-pre.js"></script>
<style type="text/css">
#box {
background-color: blue;
width: 300px;
height: 100px;
}
#box:active {
background-color: red;
}
</style>
<body>
<div id="box">Gestures go here</div>
<p id="description"></p>
<p>See https://bugs.webkit.org/show_bug.cgi?id=96060 for details</p>
<div id="console"></div>
<script>
var color;
function isBoxActive()
{
// These need to match the background-color used above, after round-tripping.
var defaultColor = "rgb(0, 0, 255)";
var activeColor = "rgb(255, 0, 0)";
var b = document.getElementById('box');
color = window.getComputedStyle(b).backgroundColor;
if (color == activeColor)
return true;
if (color != defaultColor)
testFailed('Got unexpected backgroundColor: ' + color);
return false;
}
description("Tests that tap gesture events set and clear the active state of elements.");
function runTests()
{
if (!window.eventSender) {
debug('This test requires DRT.');
return;
}
if (!eventSender.gestureTapDown) {
debug('GestureTapDown is not supported by this platform');
return;
}
debug("Verify active isn't initially set");
shouldBeFalse("isBoxActive()");
debug("Verify tapdown,tap sets and clears active");
eventSender.gestureTapDown(50, 50);
shouldBeTrue("isBoxActive()");
eventSender.gestureTap(50, 50);
shouldBeFalse("isBoxActive()");
debug("Verify tapdown,tapcancel on the element sets and clears active");
eventSender.gestureTapDown(50, 50);
shouldBeTrue("isBoxActive()");
eventSender.gestureTapCancel(50, 50);
shouldBeFalse("isBoxActive()");
debug("Verify tap elsewhere still clears active");
eventSender.gestureTapDown(50, 50);
shouldBeTrue("isBoxActive()");
eventSender.gestureTap(400, 250);
shouldBeFalse("isBoxActive()");
debug("Verify tapCancel elsewhere still clears active");
eventSender.gestureTapDown(50, 50);
shouldBeTrue("isBoxActive()");
eventSender.gestureTapCancel(400, 250);
shouldBeFalse("isBoxActive()");
debug("Verify that touchstart doesn't trigger active state");
eventSender.addTouchPoint(50, 50);
eventSender.touchStart();
shouldBeFalse("isBoxActive()");
eventSender.releaseTouchPoint(0);
eventSender.touchEnd();
debug("Verify that touchstart/touchend doesn't cancel active");
eventSender.gestureTapDown(50, 50);
shouldBeTrue("isBoxActive()");
eventSender.addTouchPoint(50, 50);
eventSender.touchStart();
shouldBeTrue("isBoxActive()");
eventSender.releaseTouchPoint(0);
eventSender.touchEnd();
shouldBeTrue("isBoxActive()");
eventSender.gestureTap(50, 50);
shouldBeFalse("isBoxActive()");
}
runTests();
</script>
<script src="../../../../resources/js-test-post.js"></script>
</body>
</html>