[FIX] qweb: t-component + class with extra whitespaces

Crashed due to `DOMTokenList.add(string)` requiring non-empty string.
This commit is contained in:
Alexandre Kühn
2019-06-25 10:14:16 +02:00
committed by Géry Debongnie
parent cc50a2e3bb
commit 4a5db0c283
2 changed files with 19 additions and 1 deletions
+2 -1
View File
@@ -475,7 +475,8 @@ QWeb.addDirective({
if (classAttr) {
classCode =
classAttr
.split(" ")
.trim()
.split(/\s+/)
.map(c => `vn.elm.classList.add('${c}')`)
.join(";") + ";";
}
+17
View File
@@ -1464,6 +1464,23 @@ describe("class and style attributes with t-component", () => {
expect(fixture.innerHTML).toBe(`<div><div class="c b"></div></div>`);
});
test("class with extra whitespaces", async () => {
env.qweb.addTemplate(
"ParentWidget",
`<div>
<Child class="a b c d"/>
</div>`
);
class ParentWidget extends Widget {
components = { Child };
}
env.qweb.addTemplate("Child", `<div/>`);
class Child extends Widget {}
const widget = new ParentWidget(env);
await widget.mount(fixture);
expect(fixture.innerHTML).toBe(`<div><div class="a b c d"></div></div>`);
});
test("style is properly added on widget root el", async () => {
env.qweb.addTemplate(
"ParentWidget",