UNPKG

@webcomponents/custom-elements

Version:
35 lines (29 loc) 1 kB
<!DOCTYPE html> <script src="../resources/testharness.js"></script> <script src="../resources/testharnessreport.js"></script> <div id=editor contenteditable><x-x>aa</x-x></div> <script> 'use strict'; promise_test(function () { let constructCount = 0; customElements.define('x-x', class extends HTMLElement { constructor() { super(); constructCount++; } }); assert_equals(constructCount, 1, 'define() should run constructor'); let element = editor.firstElementChild; element.focus(); let selection = getSelection(); selection.collapse(element.firstChild, 1); eventSender.keyDown('\r'); // Backup queue runs in a microtask, so schedule the assertions after that. return new Promise(resolve => { resolve(); }).then(() => { assert_equals(document.getElementsByTagName('x-x').length, 2, 'Enter key should clone the element'); assert_equals(constructCount, 2, 'clone should run constructor'); }); }, 'clone-a-node in contenteditable'); </script>