blob: aedfc8a54cb499587aed4c10942f67798bcbe66f [file] [log] [blame]
function assert_equal_values(output, value, message) {
assert_equals(output.value, value, `.value ${message}`);
assert_equals(output.defaultValue, value, `.defaultValue ${message}`);
}
function assert_values(output, value, defaultValue, message) {
assert_equals(output.value, value, `.value ${message}`);
assert_equals(output.defaultValue, defaultValue, `.defaultValue ${message}`);
}
test(() => {
const output = document.createElement("output"),
child = output.appendChild(document.createElement("span"));
assert_equal_values(output, "", "start");
child.textContent = "x";
assert_equal_values(output, "x", "after setting textContent");
output.value = "some";
assert_values(output, "some", "x", "after setting value");
child.textContent = "y";
assert_values(output, "y", "x", "after setting textContent again");
}, "Descendant mutations and output.value and .defaultValue");
test(() => {
const form = document.createElement("form"),
output = form.appendChild(document.createElement("output"));
output.textContent = "value";
assert_equal_values(output, "value", "after setting textContent");
output.value = "heya";
assert_values(output, "heya", "value", "after setting value");
form.reset();
assert_equal_values(output, "value", "after form.reset()");
output.innerHTML = "<div>something</div>";
assert_equal_values(output, "something", "after setting innerHTML");
form.reset();
assert_equal_values(output, "something", "after form.reset() again");
}, "output and output.form.reset()");