blob: aa45f40bb96a4843ec4bfd2d1384c3ad9174d653 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../../resources/js-test-pre.js"></script>
<script>
function newDoc(markup) {
var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
iframe.contentDocument.documentElement.innerHTML = '<head></head><body></body>';
iframe.contentDocument.body.innerHTML = markup;
window.doc = iframe.contentDocument;
window.$ = iframe.contentDocument.querySelector.bind(iframe.contentDocument);
}
function element(name, markup) {
var element = doc.createElement(name);
element.textContent = markup;
return element;
}
description('This test updates contenteditable content attribute, contentEditable IDL property, and -webkit-user-modify CSS property dynamically.');
shouldBeFalse('newDoc("<div></div>"); $("div").isContentEditable');
shouldBeTrue('$("div").contentEditable = "true"; $("div").isContentEditable');
shouldBeTrue('newDoc("<div contenteditable=true></div>"); $("div").isContentEditable');
shouldBeFalse('$("div").contentEditable = "false"; $("div").isContentEditable');
shouldBeTrue('newDoc("<div contenteditable=plaintext-only></div>"); $("div").isContentEditable');
shouldBeFalse('$("div").contentEditable = "false"; $("div").isContentEditable');
debug('');
debug('Style rules');
shouldBeTrue('newDoc("<div></div><style> div { -webkit-user-modify: read-write; } </style>"); $("div").isContentEditable');
shouldBeFalse('$("style").textContent = ""; $("div").isContentEditable');
shouldBeTrue('$("style").textContent = "* { -webkit-user-modify: read-write-plaintext-only; }"; $("div").isContentEditable');
shouldBeFalse('newDoc("<div></div>"); style = element("style", "* { -webkit-user-modify: read-write }"); $("div").isContentEditable');
shouldBeTrue('$("body").appendChild(style); $("div").isContentEditable');
shouldBeFalse('newDoc("<div></div><style></style>"); $("div").isContentEditable');
shouldBeTrue('$("style").sheet.insertRule("* { -webkit-user-modify: read-write; }", 0); $("div").isContentEditable');
shouldBeFalse('$("style").sheet.insertRule("* { -webkit-user-modify: read-only !important; }", 0); $("div").isContentEditable');
debug('');
debug('Inline styles');
shouldBeTrue('newDoc("<div style=\'-webkit-user-modify:read-write\'></div>"); $("div").isContentEditable');
shouldBeTrue('$("head").innerHTML = "<base href=\'http://localhost/\'>"; $("div").isContentEditable');
shouldBeFalse('$("div").style.webkitUserModify = ""; $("div").isContentEditable');
shouldBeTrue('newDoc("<div></div>"); $("div").style.webkitUserModify = "read-write"; $("div").isContentEditable');
shouldBeFalse('$("div").setAttribute("style", ""); $("div").isContentEditable');
shouldBeFalse('newDoc("<div></div>"); $("div").isContentEditable');
shouldBeTrue('$("div").setAttribute("style", "-webkit-user-modify: read-write"); $("div").isContentEditable');
shouldBeFalse('$("div").setAttribute("style", "-webkit-user-modify: read-only"); $("div").isContentEditable');
var iframes = document.querySelectorAll('iframe');
for (var i = 0; i < iframes.length; i++)
document.body.removeChild(iframes[i]);
var successfullyParsed = true;
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>