blob: 68b7367ef9f0e365270eca73c5a1424f1aa911eb [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test.js"></script>
<div id="editor" contenteditable></div>
<script>
description('This tests the existence of the backup element queue. To manually test, press the delete key once the page is loaded.');
var jsTestIsAsync = true;
var constructed = false;
var disconnected = false;
class TestElement extends HTMLElement {
constructor() {
super();
constructed = true;
}
disconnectedCallback() {
disconnected = true;
}
}
customElements.define('test-element', TestElement);
var editor = document.getElementById('editor');
shouldBe('constructed', 'false');
shouldBe('editor.innerHTML = "a<test-element>b</test-element>c"; constructed', 'true');
shouldBe('editor.focus(); getSelection().selectAllChildren(editor); disconnected', 'false');
function checkDisconnectedAtEndOfMictotask()
{
shouldBe('"Before the end of the micro task"; disconnected', 'false');
Promise.resolve().then(function () {
shouldBe('"At the end of the micro task"; disconnected', 'true');
finishJSTest();
});
}
if (window.testRunner) {
testRunner.execCommand('delete', false, null);
checkDisconnectedAtEndOfMictotask();
} else {
editor.oninput = function () {
checkDisconnectedAtEndOfMictotask();
}
}
</script>
</body>
</html>