blob: 40381bea425c7541a403631ffe5b0b94d1c59c3a [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
<script>
function testTextIndent(testContent, characterIndex)
{
document.body.innerHTML = testContent;
var editor = document.getElementById('textIndentTest');
editor.focus();
var caretRect = textInputController.firstRectForCharacterRange(0, 0);
var caretXPosition_withoutTextRender = caretRect[0];
editor.setSelectionRange(0, 0);
document.execCommand('InsertText', false, 'a');
caretRect = textInputController.firstRectForCharacterRange(characterIndex, 0);
var caretXPosition_withTextRender = caretRect[0];
if (caretXPosition_withoutTextRender == caretXPosition_withTextRender)
return "Success. The caret's x positions of empty&nonempty input field were the same.\n";
else
return "Failure. The caret's x position of empty input field was " + caretXPosition_withoutTextRender + ", should have been " + caretXPosition_withTextRender + ".\n";
}
function testTextIndentWhenTextAlignsToCenter(textIndent)
{
document.body.innerHTML = "<input id='textIndentTest' type='text' style='text-align:center;'>";
var editor = document.getElementById('textIndentTest');
editor.focus();
var caretRect = textInputController.firstRectForCharacterRange(0, 0);
var caretXPosition_withoutTextIndent = caretRect[0];
editor.blur();
editor.style.textIndent = textIndent + "px";
editor.focus();
caretRect = textInputController.firstRectForCharacterRange(0, 0);
var caretXPosition_withTextIndent = caretRect[0];
var desiredCaretXPosition = caretXPosition_withoutTextIndent + textIndent / 2;
if (desiredCaretXPosition == caretXPosition_withTextIndent)
return "Success. The caret's x positions was set to desired position when the text-align is center.\n";
else
return "Failure. The caret's x position of input field was " + caretXPosition_withTextIndent + ", should have been " + desiredCaretXPosition + ".\n";
}
if (window.testRunner)
window.testRunner.dumpAsText();
var output = "";
output += testTextIndent("<input id='textIndentTest' type='text' style='font-family:Ahem;text-indent:30px;'></input>", 0);
output += testTextIndent("<input id='textIndentTest' type='text' style='font-family:Ahem;text-indent:-30px;'>", 0);
output += testTextIndent("<input id='textIndentTest' type='text' style='font-family:Ahem;text-indent:30px;text-align:left'>", 0);
output += testTextIndent("<input id='textIndentTest' type='text' style='font-family:Ahem;text-indent:30px;text-align:right'>", 1);
output += testTextIndent("<input id='textIndentTest' type='text' style='font-family:Ahem;text-indent:30px;direction:rtl;'>", 0);
output += testTextIndent("<input id='textIndentTest' type='text' style='font-family:Ahem;text-indent:30px;direction:rtl;text-align:right;'>", 0);
output += testTextIndentWhenTextAlignsToCenter(30);
output += testTextIndentWhenTextAlignsToCenter(-30);
document.body.innerText = output;
</script>
</html>