187 lines
8.2 KiB
HTML
187 lines
8.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<script>
|
|
description("This tests enabling of non-execCommand commands based on whether the selection is a caret or range or in editable content.");
|
|
|
|
var nonEditableParagraph = document.createElement("p");
|
|
nonEditableParagraph.appendChild(document.createTextNode("x"));
|
|
document.body.appendChild(nonEditableParagraph);
|
|
|
|
var editableParagraph = document.createElement("p");
|
|
editableParagraph.appendChild(document.createTextNode("x"));
|
|
editableParagraph.setAttribute("contentEditable", "true");
|
|
document.body.appendChild(editableParagraph);
|
|
|
|
var editablePlainTextParagraph = document.createElement("p");
|
|
editablePlainTextParagraph.appendChild(document.createTextNode("x"));
|
|
editablePlainTextParagraph.setAttribute("contentEditable", "plaintext-only");
|
|
document.body.appendChild(editablePlainTextParagraph);
|
|
|
|
function enabled(command, element, selectionStart, selectionEnd)
|
|
{
|
|
var selection = document.getSelection();
|
|
selection.removeAllRanges();
|
|
if (element) {
|
|
var range = document.createRange();
|
|
range.setStart(element.firstChild, selectionStart);
|
|
range.setEnd(element.firstChild, selectionEnd);
|
|
selection.addRange(range);
|
|
}
|
|
var result = testRunner.isCommandEnabled(command);
|
|
selection.removeAllRanges();
|
|
return result;
|
|
}
|
|
|
|
function whenEnabled(command)
|
|
{
|
|
if (!window.testRunner)
|
|
return "no layout test controller";
|
|
|
|
var enabledWithNoSelection = enabled(command);
|
|
var enabledWithCaret = enabled(command, editableParagraph, 0, 0);
|
|
var enabledWithEditableRange = enabled(command, editableParagraph, 0, 1);
|
|
var enabledWithPlainTextCaret = enabled(command, editablePlainTextParagraph, 0, 0);
|
|
var enabledWithPlainTextEditableRange = enabled(command, editablePlainTextParagraph, 0, 1);
|
|
var enabledWithPoint = enabled(command, nonEditableParagraph, 0, 0);
|
|
var enabledWithNonEditableRange = enabled(command, nonEditableParagraph, 0, 1);
|
|
|
|
var summaryInteger = enabledWithNoSelection
|
|
| (enabledWithCaret << 1)
|
|
| (enabledWithEditableRange << 2)
|
|
| (enabledWithPlainTextCaret << 3)
|
|
| (enabledWithPlainTextEditableRange << 4)
|
|
| (enabledWithPoint << 5)
|
|
| (enabledWithNonEditableRange << 6);
|
|
|
|
if (summaryInteger === 0x7F)
|
|
return "always";
|
|
|
|
if (summaryInteger === 0x54)
|
|
return "range";
|
|
|
|
if (summaryInteger === 0x1E)
|
|
return "editable";
|
|
if (summaryInteger === 0x0A)
|
|
return "caret";
|
|
if (summaryInteger === 0x14)
|
|
return "editable range";
|
|
|
|
if (summaryInteger === 0x06)
|
|
return "richly editable";
|
|
if (summaryInteger === 0x02)
|
|
return "richly editable caret";
|
|
if (summaryInteger === 0x04)
|
|
return "richly editable range";
|
|
|
|
if (summaryInteger === 0x5E)
|
|
return "visible";
|
|
|
|
return summaryInteger;
|
|
}
|
|
|
|
shouldBe("whenEnabled('Print')", "'always'");
|
|
shouldBe("whenEnabled('SelectAll')", "'always'");
|
|
|
|
shouldBe("whenEnabled('Transpose')", "'caret'");
|
|
|
|
shouldBe("whenEnabled('Copy')", "'range'");
|
|
|
|
shouldBe("whenEnabled('Cut')", "'editable range'");
|
|
shouldBe("whenEnabled('Delete')", "'editable range'");
|
|
|
|
shouldBe("whenEnabled('DeleteBackward')", "'editable'");
|
|
shouldBe("whenEnabled('DeleteBackwardByDecomposingPreviousCharacter')", "'editable'");
|
|
shouldBe("whenEnabled('DeleteForward')", "'editable'");
|
|
shouldBe("whenEnabled('DeleteToBeginningOfLine')", "'editable'");
|
|
shouldBe("whenEnabled('DeleteToBeginningOfParagraph')", "'editable'");
|
|
shouldBe("whenEnabled('DeleteToEndOfLine')", "'editable'");
|
|
shouldBe("whenEnabled('DeleteToEndOfParagraph')", "'editable'");
|
|
shouldBe("whenEnabled('DeleteToMark')", "'editable'");
|
|
shouldBe("whenEnabled('DeleteWordBackward')", "'editable'");
|
|
shouldBe("whenEnabled('DeleteWordForward')", "'editable'");
|
|
shouldBe("whenEnabled('IgnoreSpelling')", "'editable'");
|
|
shouldBe("whenEnabled('InsertBacktab')", "'editable'");
|
|
shouldBe("whenEnabled('InsertLineBreak')", "'editable'");
|
|
shouldBe("whenEnabled('InsertNewline')", "'editable'");
|
|
shouldBe("whenEnabled('InsertTab')", "'editable'");
|
|
shouldBe("whenEnabled('MoveBackward')", "'editable'");
|
|
shouldBe("whenEnabled('MoveDown')", "'editable'");
|
|
shouldBe("whenEnabled('MoveForward')", "'editable'");
|
|
shouldBe("whenEnabled('MoveLeft')", "'editable'");
|
|
shouldBe("whenEnabled('MoveRight')", "'editable'");
|
|
shouldBe("whenEnabled('MoveToBeginningOfDocument')", "'editable'");
|
|
shouldBe("whenEnabled('MoveToBeginningOfLine')", "'editable'");
|
|
shouldBe("whenEnabled('MoveToBeginningOfParagraph')", "'editable'");
|
|
shouldBe("whenEnabled('MoveToBeginningOfSentence')", "'editable'");
|
|
shouldBe("whenEnabled('MoveToEndOfDocument')", "'editable'");
|
|
shouldBe("whenEnabled('MoveToEndOfLine')", "'editable'");
|
|
shouldBe("whenEnabled('MoveToEndOfParagraph')", "'editable'");
|
|
shouldBe("whenEnabled('MoveToEndOfSentence')", "'editable'");
|
|
shouldBe("whenEnabled('MoveUp')", "'editable'");
|
|
shouldBe("whenEnabled('MoveWordBackward')", "'editable'");
|
|
shouldBe("whenEnabled('MoveWordForward')", "'editable'");
|
|
shouldBe("whenEnabled('MoveWordLeft')", "'editable'");
|
|
shouldBe("whenEnabled('MoveWordRight')", "'editable'");
|
|
shouldBe("whenEnabled('Yank')", "'editable'");
|
|
shouldBe("whenEnabled('YankAndSelect')", "'editable'");
|
|
|
|
shouldBe("whenEnabled('AlignCenter')", "'richly editable'");
|
|
shouldBe("whenEnabled('AlignJustified')", "'richly editable'");
|
|
shouldBe("whenEnabled('AlignLeft')", "'richly editable'");
|
|
shouldBe("whenEnabled('AlignRight')", "'richly editable'");
|
|
shouldBe("whenEnabled('Indent')", "'richly editable'");
|
|
shouldBe("whenEnabled('MakeTextWritingDirectionLeftToRight')", "'richly editable'");
|
|
shouldBe("whenEnabled('MakeTextWritingDirectionNatural')", "'richly editable'");
|
|
shouldBe("whenEnabled('MakeTextWritingDirectionRightToLeft')", "'richly editable'");
|
|
shouldBe("whenEnabled('Outdent')", "'richly editable'");
|
|
shouldBe("whenEnabled('Subscript')", "'richly editable'");
|
|
shouldBe("whenEnabled('Superscript')", "'richly editable'");
|
|
shouldBe("whenEnabled('Underline')", "'richly editable'");
|
|
shouldBe("whenEnabled('Unscript')", "'richly editable'");
|
|
|
|
shouldBe("whenEnabled('Paste')", "'editable'");
|
|
|
|
shouldBe("whenEnabled('MoveBackwardAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveDownAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveForwardAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveLeftAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveParagraphBackwardAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveParagraphForwardAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveRightAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveToBeginningOfDocumentAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveToBeginningOfLineAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveToBeginningOfParagraphAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveToBeginningOfSentenceAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveToEndOfDocumentAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveToEndOfLineAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveToEndOfParagraphAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveToEndOfSentenceAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveUpAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveWordBackwardAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveWordForwardAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveWordLeftAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('MoveWordRightAndModifySelection')", "'visible'");
|
|
shouldBe("whenEnabled('SelectLine')", "'visible'");
|
|
shouldBe("whenEnabled('SelectParagraph')", "'visible'");
|
|
shouldBe("whenEnabled('SelectSentence')", "'visible'");
|
|
shouldBe("whenEnabled('SelectWord')", "'visible'");
|
|
shouldBe("whenEnabled('SetMark')", "'visible'");
|
|
|
|
shouldBe("whenEnabled('OverWrite')", "'richly editable'");
|
|
|
|
document.body.removeChild(nonEditableParagraph);
|
|
document.body.removeChild(editableParagraph);
|
|
document.body.removeChild(editablePlainTextParagraph);
|
|
|
|
var successfullyParsed = true;
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|