diff --git a/addons/web/static/src/views/view_compiler.js b/addons/web/static/src/views/view_compiler.js index 26c9fb63e90..a6d2baa0ad2 100644 --- a/addons/web/static/src/views/view_compiler.js +++ b/addons/web/static/src/views/view_compiler.js @@ -398,7 +398,7 @@ export class ViewCompiler { * @returns {Element} */ compileGenericNode(el, params) { - const compiled = createElement(el.nodeName); + const compiled = createElement(el.nodeName.toLowerCase()); const metaAttrs = ["modifiers", "attrs", "invisible", "readonly"]; for (const attr of el.attributes) { if (metaAttrs.includes(attr.name)) { diff --git a/addons/web/static/tests/views/form/form_view_tests.js b/addons/web/static/tests/views/form/form_view_tests.js index 9e27c629481..6c343a5c2e2 100644 --- a/addons/web/static/tests/views/form/form_view_tests.js +++ b/addons/web/static/tests/views/form/form_view_tests.js @@ -295,6 +295,20 @@ QUnit.module("Views", (hooks) => { assert.containsNone(target, "label.o_form_label_empty:contains(timmy)"); }); + QUnit.test("generic tags are case insensitive", async function (assert) { + await makeView({ + type: "form", + resModel: "partner", + serverData, + arch: ` +
+
Hello
+
`, + }); + + assert.containsOnce(target, "div.test"); + }); + QUnit.test("form view with a group that contains an invisible group", async function (assert) { await makeView({ type: "form", diff --git a/addons/web/static/tests/views/kanban_view_tests.js b/addons/web/static/tests/views/kanban_view_tests.js index 88daa42a4ad..9e7538b91bb 100644 --- a/addons/web/static/tests/views/kanban_view_tests.js +++ b/addons/web/static/tests/views/kanban_view_tests.js @@ -363,6 +363,22 @@ QUnit.module("Views", (hooks) => { assert.containsOnce(target, ".o_kanban_record:contains(gnap)"); }); + QUnit.test("generic tags are case insensitive", async function (assert) { + await makeView({ + type: "kanban", + resModel: "partner", + serverData, + arch: ` + + +
Hello
+
+
`, + }); + + assert.containsN(target, "div.test", 4); + }); + QUnit.test("display full is supported on fields", async (assert) => { await makeView({ type: "kanban",