blob: 0a12b8c4f51f5c6a3935ed02f8173ea9c45453df [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>Editing: contentEditable attribute test</title>
<link rel="author" title="Baidu" href="mailto: guopengcheng@baidu.com" />
<link
rel="help"
href="https://html.spec.whatwg.org/multipage/#contenteditable"
/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
</head>
<body>
<script type="text/javascript">
test(function() {
const testElement = document.createElement("testElement");
assert_equals(
testElement.contentEditable,
"inherit",
"check for testElement.contentEditable value"
);
}, "no contentEditable attribute");
test(function() {
const testElement = document.createElement("testElement");
testElement.setAttribute("contentEditable", "");
assert_true(
testElement.isContentEditable,
"check for testElement.isContentEditable value"
);
assert_equals(
testElement.contentEditable,
"true",
"check for testElement.contentEditable value"
);
}, "empty contentEditable attribute");
test(function() {
const testElement = document.createElement("testElement");
testElement.contentEditable = "true";
assert_true(
testElement.isContentEditable,
"check for testElement.isContentEditable value"
);
assert_equals(
testElement.contentEditable,
"true",
"check for testElement.contentEditable value"
);
}, 'set contentEditable = "true"');
test(function() {
const testElement = document.createElement("testElement");
testElement.contentEditable = "false";
assert_false(
testElement.isContentEditable,
"check for testElement.isContentEditable value"
);
assert_equals(
testElement.contentEditable,
"false",
"check for testElement.contentEditable value"
);
}, 'set contentEditable = "false"');
test(function() {
const testElement = document.createElement("testElement");
testElement.contentEditable = "inherit";
assert_equals(
testElement.contentEditable,
"inherit",
"check for testElement.contentEditable value"
);
}, 'set contentEditable = "inherit"');
test(function() {
const testElement = document.createElement("testElement");
const childElement = document.createElement("childElement");
testElement.appendChild(childElement);
testElement.contentEditable = "true";
assert_true(
testElement.isContentEditable,
"check for testElement.isContentEditable value"
);
assert_equals(
testElement.contentEditable,
"true",
"check for testElement.contentEditable value"
);
assert_true(
childElement.isContentEditable,
"check for childElement.isContentEditable value"
);
assert_equals(
childElement.contentEditable,
"inherit",
"check for childElement.contentEditable value"
);
}, 'set parent element contentEditable = "true"');
test(function() {
const testElement = document.createElement("testElement");
const childElement = document.createElement("childElement");
testElement.appendChild(childElement);
testElement.contentEditable = "false";
assert_false(
testElement.isContentEditable,
"check for testElement.isContentEditable value"
);
assert_equals(
testElement.contentEditable,
"false",
"check for testElement.contentEditable value"
);
assert_false(
childElement.isContentEditable,
"check for childElement.isContentEditable value"
);
assert_equals(
childElement.contentEditable,
"inherit",
"check for childElement.contentEditable value"
);
}, 'set parent element contentEditable = "false"');
test(function() {
var testElement = document.createElement("testElement");
assert_equals(
testElement.contentEditable,
"inherit",
"no contentEditable attribute, so inherit"
);
testElement.setAttribute("contentEditable", "");
assert_true(
testElement.isContentEditable,
"check for testElement.isContentEditable value"
);
assert_equals(
testElement.contentEditable,
"true",
"empty contentEditable attribute is 'true'"
);
testElement.contentEditable = "true";
assert_true(
testElement.isContentEditable,
"check for testElement.isContentEditable value"
);
assert_equals(
testElement.contentEditable,
"true",
"contentEditable='true' is 'true'"
);
testElement.contentEditable = "false";
assert_false(
testElement.isContentEditable,
"check for testElement.isContentEditable value"
);
assert_equals(
testElement.contentEditable,
"false",
"contentEditable = 'false' is 'false'"
);
testElement.contentEditable = "inherit";
assert_equals(
testElement.contentEditable,
"inherit",
"contentEditable='inherit' is 'inherit'"
);
var childElement = document.createElement("childElement");
testElement.appendChild(childElement);
testElement.contentEditable = "true";
assert_true(
testElement.isContentEditable,
'parent element contentEditable = "true"'
);
assert_equals(testElement.contentEditable, "true");
assert_true(
childElement.isContentEditable,
'parent element contentEditable = "true", so childElement must be editable'
);
assert_equals(
childElement.contentEditable,
"inherit",
'parent element contentEditable = "true", so child inherits'
);
testElement.contentEditable = "false";
assert_false(
testElement.isContentEditable,
'parent element contentEditable = "false"'
);
assert_equals(testElement.contentEditable, "false");
assert_false(
childElement.isContentEditable,
'parent element contentEditable = "false"'
);
assert_equals(
childElement.contentEditable,
"inherit",
'parent element contentEditable = "false"'
);
}, "Dynamically changing contentEditable values");
</script>
</body>
</html>