[IMP] web_editor: test adding nested editables

Commit e834173314f00e36cb3a1f99690d9f220584682c fixed an issue where editable
elements could not be removed if they were nested in a non-editable element,
because the editor considered them to be an editable root.

However, the same logic also applied when doing a history step after adding
such an element. Adding a nested editable element would make the history step
invalid and result in a rollback.

Such a situation can be encountered when adding a recaptcha legal notice to a
website form. The footer of the form is a non-editable paet of the document,
however the legal notice can still be updated by the user. This commit adds a
separate test for the addition of such editable elements that were previously
considered unremovable.

opw-2723017

closes odoo/odoo#88733

X-original-commit: f693e8ed27f753a728d903dfe4d7d10ae1334526
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
This commit is contained in:
Tom De Caluwé
2022-04-14 10:50:07 +02:00
parent 42a42ebcfb
commit e73fa8f671
@@ -3228,6 +3228,19 @@ X[]
});
});
});
describe('step', () => {
it('should allow insertion of nested contenteditable="true"', async () => {
await testEditor(BasicEditor, {
contentBefore: `<div contenteditable="false"></div>`,
stepFunction: async editor => {
const editable = '<div contenteditable="true">abc</div>';
editor.editable.querySelector('div').innerHTML = editable;
editor.historyStep();
},
contentAfter: `<div contenteditable="false"><div contenteditable="true">abc</div></div>`,
});
});
});
});
// Note that arrow keys test have a contentAfter that is not reflective of