blob: d200d9601dcb6b5e9abd7c7d742d7e0cf4b39c27 [file] [log] [blame]
function log(msg) {
document.getElementById('console').appendChild(document.createTextNode(msg + '\n'));
}
if (window.testRunner && window.eventSender) {
testRunner.dumpAsText();
var x = floatedEditable.offsetLeft + (floatedEditable.offsetWidth / 2);
var y = floatedEditable.offsetTop + (floatedEditable.offsetHeight / 2);
eventSender.mouseMoveTo(x, y);
eventSender.mouseDown();
x = floatedEditable.offsetLeft + floatedEditable.offsetWidth + 5;
eventSender.mouseMoveTo(x, y);
eventSender.leapForward(250);
eventSender.mouseUp();
checkSelection();
} else {
window.onmouseup = function() {
window.setTimeout(function() {
log('Input selection start: ' + getSelectionStart(floatedEditable) + ', end: ' +
getSelectionEnd(floatedEditable));
checkSelection();
}, 0); // Without a timeout the selection is inaccurately printed
}
}
function getSelectionStart(element) {
return element.isContentEditable ? window.getSelection().baseOffset : element.selectionStart;
}
function getSelectionEnd(element) {
return element.isContentEditable ? window.getSelection().extentOffset : element.selectionEnd;
}
function checkSelection() {
var inputText = floatedEditable.isContentEditable ? floatedEditable.textContent : floatedEditable.value;
var selectionStart = getSelectionStart(floatedEditable);
var selectionEnd = getSelectionEnd(floatedEditable);
var selectionStartsFromMiddle = selectionStart > 0 && selectionStart < inputText.length;
var selectionGoesToEnd = selectionEnd == inputText.length;
if (selectionStartsFromMiddle && selectionGoesToEnd)
result.innerHTML = '<span style="padding: 5px; background-color: green">SUCCESS</span>';
else
result.innerHTML = '<span style="padding: 5px; background-color: red">FAIL</span>';
}