<script>
function log(message)
{
var li = document.createElement("li");
li.appendChild(document.createTextNode(message));
var console = document.getElementById("console");
console.appendChild(li);
}
function assert(func, args, expected)
{
var f = func + '("' + args + '")';
var result = eval(f);
if (result != expected)
log('Failure: ' + f + ' was ' + result + ', expected: ' + expected);
else
log('Success: ' + f + ' == ' + result);
}
</script>
<input id="textfield" type="text" style="width: 300" value="hello world">
<ol id="console"></ol>
<script>
if (window.testRunner)
testRunner.dumpAsText();
var e = document.getElementById("textfield");
e.focus();
e.setSelectionRange(0, 5);
assert("document.queryCommandEnabled", "BackColor", false);
assert("document.queryCommandEnabled", "Bold", false);
assert("document.queryCommandEnabled", "Copy", true);
assert("document.queryCommandEnabled", "CreateLink", false);
assert("document.queryCommandEnabled", "Cut", true);
assert("document.queryCommandEnabled", "Delete", true);
assert("document.queryCommandEnabled", "FontName", false);
assert("document.queryCommandEnabled", "FontSize", false);
assert("document.queryCommandEnabled", "FontSizeDelta", false);
assert("document.queryCommandEnabled", "ForeColor", false);
assert("document.queryCommandEnabled", "ForwardDelete", true);
assert("document.queryCommandEnabled", "Indent", false);
assert("document.queryCommandEnabled", "InsertHTML", true);
assert("document.queryCommandEnabled", "InsertImage", false);
assert("document.queryCommandEnabled", "InsertLineBreak", true);
assert("document.queryCommandEnabled", "InsertParagraph", true);
assert("document.queryCommandEnabled", "InsertNewlineInQuotedContent", false);
assert("document.queryCommandEnabled", "InsertText", true);
assert("document.queryCommandEnabled", "Italic", false);
assert("document.queryCommandEnabled", "JustifyCenter", false);
assert("document.queryCommandEnabled", "JustifyFull", false);
assert("document.queryCommandEnabled", "JustifyLeft", false);
assert("document.queryCommandEnabled", "JustifyNone", false);
assert("document.queryCommandEnabled", "JustifyRight", false);
assert("document.queryCommandEnabled", "Outdent", false);
assert("document.queryCommandEnabled", "Paste", true);
assert("document.queryCommandEnabled", "PasteAndMatchStyle", true);
assert("document.queryCommandEnabled", "SelectAll", true);
assert("document.queryCommandEnabled", "Strikethrough", false);
assert("document.queryCommandEnabled", "Subscript", false);
assert("document.queryCommandEnabled", "Superscript", false);
assert("document.queryCommandEnabled", "Underline", false);
assert("document.queryCommandEnabled", "Unlink", false);
assert("document.queryCommandEnabled", "Unselect", true);
e.setSelectionRange(3, 3);
assert("document.queryCommandEnabled", "Transpose", true);
e.setSelectionRange(0, 5);
assert("document.execCommand", "Cut", true);
assert("document.queryCommandEnabled", "Undo", true);
assert("document.execCommand", "Undo", true);
assert("document.queryCommandEnabled", "Redo", true);
</script>