diff options
| author | fwi-odoo <fwi@odoo.com> | 2017-09-30 14:28:42 +0200 |
|---|---|---|
| committer | fwi-odoo <fwi@odoo.com> | 2017-09-30 15:11:39 +0200 |
| commit | d9ffd5204d7826dcdcb026e828867f6ea3d95755 (patch) | |
| tree | f8278dcdc0b70204fe7e199416a0e582693ef7bd /addons/web/static/tests/views | |
| parent | 236742cb0e526d974dcf744544c8088c27f9d018 (diff) | |
[FIX] web: correctly apply onchange on boolean field
When an onchange sets a boolean field to 'true', if this boolean was set to 'false'
previously, the old value was used instead of 'false'.
Diffstat (limited to 'addons/web/static/tests/views')
| -rw-r--r-- | addons/web/static/tests/views/basic_model_tests.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/addons/web/static/tests/views/basic_model_tests.js b/addons/web/static/tests/views/basic_model_tests.js index efbbb276aef..65962870be7 100644 --- a/addons/web/static/tests/views/basic_model_tests.js +++ b/addons/web/static/tests/views/basic_model_tests.js @@ -2123,4 +2123,47 @@ QUnit.module('Views', { model.destroy(); }); + QUnit.test('onchange on a boolean field', function (assert) { + assert.expect(2); + + var newFields = { + foobool: { + type: 'boolean', + string: 'foobool', + }, + foobool2: { + type: 'boolean', + string: 'foobool2', + }, + }; + _.extend(this.data.partner.fields, newFields); + + this.data.partner.onchanges.foobool = function (obj) { + if (obj.foobool) { + obj.foobool2 = true; + } + }; + + this.data.partner.records[0].foobool = false; + this.data.partner.records[0].foobool2 = true; + + this.params.res_id = 1; + this.params.fieldNames = ['foobool', 'foobool2']; + this.params.fields = this.data.partner.fields; + var model = createModel({ + Model: BasicModel, + data: this.data, + }); + + model.load(this.params).then(function (resultID) { + var record = model.get(resultID); + model.notifyChanges(resultID, {foobool2: false}); + record = model.get(resultID); + assert.strictEqual(record.data.foobool2, false, "foobool2 field should be false"); + model.notifyChanges(resultID, {foobool: true}); + record = model.get(resultID); + assert.strictEqual(record.data.foobool2, true, "foobool2 field should be true"); + }); + model.destroy(); + }); });}); |
