<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../../resources/js-test.js"></script>
</head>
<body onload="runTest();">
<input id="input" type="text" value="editable text"><br>
<span id="plain">This is plain text with no handler</span><br>
<span id="consumes">This text consumes events using preventDefault()</span><br><br>
Clicking or tapping on the "consumes" section should have no effect on the selection,
but clicking in the plain section should clear it.
<p id="description"></p>
<div id="console"></div>
<script>
var plainResult = null;
var consumesResult = null;
function plainCallback() {
}
function consumeCallback(event) {
event.preventDefault();
}
function runTest() {
document.getElementById('input').select();
var consumes = document.getElementById('consumes');
consumes.addEventListener("mousedown", consumeCallback, false);
var plain = document.getElementById('plain');
plain.addEventListener("mousedown", plainCallback, false);
if (window.testRunner) {
testRunner.dumpAsText();
}
if (window.eventSender) {
description("This tests Tap events being consumed by a handler.");
// A 'tap' gesture event should generate a sequence of mouse events,
// which do not affect the selection when consumed.
var consumesRect = document.getElementById('consumes').getBoundingClientRect();
consumesResult = eventSender.gestureTap(consumesRect.left, consumesRect.top);
shouldBe('consumesResult', 'true');
shouldNotBe('window.getSelection().toString()', '');
// Tapping on plain text does not consume the event, and clears the selection.
var plainRect = document.getElementById('plain').getBoundingClientRect();
plainResult = eventSender.gestureTap(plainRect.left, plainRect.top);
shouldBe('plainResult', 'false');
shouldBeEmptyString('window.getSelection().toString()');
} else {
debug("This test requires DumpRenderTree. Tap on the text to log.")
}
}
</script>
</body>
</html>