mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
cdad48d3a6
Before this commit, Owl template compiler would handle readonly attribute as readonly properties. But this is incorrect, since the property is actually named readOnly. With this commit, we make sure that readonly AND readOnly are both interpreted as the `readOnly` property. This is due to the fact that QWeb does not discriminate between attribute and properties, so we have to infer which is which. closes #1362
251 lines
7.4 KiB
Plaintext
251 lines
7.4 KiB
Plaintext
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
|
|
exports[`changing an attribute with t-att- 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<div block-attribute-0=\\"value\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let attr1 = ctx['v'];
|
|
return block1([attr1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`dynamic input value: falsy values 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input block-property-0=\\"value\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new String((0) === 0 ? 0 : ((0) || \\"\\"));
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`dynamic input value: falsy values 2`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input block-property-0=\\"value\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new String((false) === 0 ? 0 : ((false) || \\"\\"));
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`dynamic input value: falsy values 3`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input block-property-0=\\"value\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new String((undefined) === 0 ? 0 : ((undefined) || \\"\\"));
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`dynamic input value: falsy values 4`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input block-property-0=\\"value\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new String(('') === 0 ? 0 : (('') || \\"\\"));
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`input of type checkbox with t-att-indeterminate 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input type=\\"checkbox\\" block-property-0=\\"indeterminate\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new Boolean(ctx['v']);
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`input type= checkbox, with t-att-checked 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input type=\\"checkbox\\" block-property-0=\\"checked\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new Boolean(ctx['flag']);
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`input with t-att-value (patching with same value 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input block-property-0=\\"value\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new String((ctx['v']) === 0 ? 0 : ((ctx['v']) || \\"\\"));
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`input with t-att-value 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input block-property-0=\\"value\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new String((ctx['v']) === 0 ? 0 : ((ctx['v']) || \\"\\"));
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`input, type checkbox, with t-att-checked (patching with same value 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input type=\\"checkbox\\" block-property-0=\\"checked\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new Boolean(ctx['v']);
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`readonly and readOnly are both interpreted as the readOnly property 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input readonly=\\"\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
return block1();
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`readonly and readOnly are both interpreted as the readOnly property 2`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input readOnly=\\"\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
return block1();
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`readonly and readOnly are both interpreted as the readOnly property 3`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input block-property-0=\\"readOnly\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new Boolean(ctx['val']);
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`readonly and readOnly are both interpreted as the readOnly property 4`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input block-property-0=\\"readOnly\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new Boolean(ctx['val']);
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`select with t-att-value 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<select block-property-0=\\"value\\"><option value=\\"potato\\">Potato</option><option value=\\"tomato\\">Tomato</option><option value=\\"onion\\">Onion</option></select>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new String((ctx['value']) === 0 ? 0 : ((ctx['value']) || \\"\\"));
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`textarea with t-att-value 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<textarea block-property-0=\\"value\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new String((ctx['v']) === 0 ? 0 : ((ctx['v']) || \\"\\"));
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`updating property with falsy value 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<input block-property-0=\\"value\\"/>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
let prop1 = new String((ctx['v']) === 0 ? 0 : ((ctx['v']) || \\"\\"));
|
|
return block1([prop1]);
|
|
}
|
|
}"
|
|
`;
|
|
|
|
exports[`various boolean html attributes 1`] = `
|
|
"function anonymous(app, bdom, helpers
|
|
) {
|
|
let { text, createBlock, list, multi, html, toggler, comment } = bdom;
|
|
|
|
let block1 = createBlock(\`<div><input type=\\"checkbox\\" checked=\\"checked\\"/><input checked=\\"checked\\"/><div checked=\\"checked\\"/><div selected=\\"selected\\"/><option selected=\\"selected\\" other=\\"1\\"/><input readonly=\\"readonly\\"/><button disabled=\\"disabled\\"/></div>\`);
|
|
|
|
return function template(ctx, node, key = \\"\\") {
|
|
return block1();
|
|
}
|
|
}"
|
|
`;
|