diff options
| author | Christophe Matthieu <chm@odoo.com> | 2017-05-04 11:48:02 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@odoo.com> | 2017-05-04 17:19:25 +0200 |
| commit | 8ed4513a0a2937e79abb53a046241db0ff3573e9 (patch) | |
| tree | 6ba7932b4ad48e4791fc651062cfec23d28df9ef /addons/web/static/tests/fields/basic_fields_tests.js | |
| parent | 9ba0767f983763895ad1655184cffce6ffa0e027 (diff) | |
[FIX] web: add translate button for char and text fields
The button allowing the user to translate fields (existing in
previous versions) was not present.
Diffstat (limited to 'addons/web/static/tests/fields/basic_fields_tests.js')
| -rw-r--r-- | addons/web/static/tests/fields/basic_fields_tests.js | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/addons/web/static/tests/fields/basic_fields_tests.js b/addons/web/static/tests/fields/basic_fields_tests.js index 54907582685..a24944ed8a1 100644 --- a/addons/web/static/tests/fields/basic_fields_tests.js +++ b/addons/web/static/tests/fields/basic_fields_tests.js @@ -2,6 +2,7 @@ odoo.define('web.basic_fields_tests', function (require) { "use strict"; var concurrency = require('web.concurrency'); +var core = require('web.core'); var FormView = require('web.FormView'); var KanbanView = require('web.KanbanView'); var ListView = require('web.ListView'); @@ -9,6 +10,7 @@ var session = require('web.session'); var testUtils = require('web.test_utils'); var createView = testUtils.createView; +var _t = core._t; QUnit.module('fields', {}, function () { @@ -22,6 +24,7 @@ QUnit.module('basic_fields', { display_name: {string: "Displayed name", type: "char", searchable: true}, foo: {string: "Foo", type: "char", default: "My little Foo Value", searchable: true}, bar: {string: "Bar", type: "boolean", default: true, searchable: true}, + txt: {string: "txt", type: "text", default: "My little txt Value\nHo-ho-hoooo Merry Christmas"}, int_field: {string: "int_field", type: "integer", sortable: true, searchable: true}, qux: {string: "Qux", type: "float", digits: [16,1], searchable: true}, p: {string: "one2many field", type: "one2many", relation: 'partner', searchable: true}, @@ -619,6 +622,59 @@ QUnit.module('basic_fields', { list.destroy(); }); + QUnit.test('char field translatable', function (assert) { + assert.expect(3); + + this.data.partner.fields.foo.translate = true; + + var multi_lang = _t.database.multi_lang; + _t.database.multi_lang = true; + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '<form string="Partners">' + + '<sheet>' + + '<group>' + + '<field name="foo"/>' + + '</group>' + + '</sheet>' + + '</form>', + res_id: 1, + mockRPC: function (route, args) { + if (route === "/web/dataset/call_button" && args.method === 'translate_fields') { + assert.deepEqual(args.args, ["partner",1,"foo",{}], 'should call "call_button" route'); + return $.when(); + } + return this._super.apply(this, arguments); + }, + }); + form.$buttons.find('.o_form_button_edit').click(); + var $button = form.$('input[type="text"].o_field_char + .o_field_translate'); + assert.strictEqual($button.length, 1, "should have a translate button"); + $button.click(); + form.destroy(); + + form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '<form string="Partners">' + + '<sheet>' + + '<group>' + + '<field name="foo"/>' + + '</group>' + + '</sheet>' + + '</form>', + }); + $button = form.$('input[type="text"].o_field_char + .o_field_translate'); + assert.strictEqual($button.length, 0, "should not have a translate button in create mode"); + form.destroy(); + + _t.database.multi_lang = multi_lang; + }); + QUnit.module('UrlWidget'); @@ -779,6 +835,59 @@ QUnit.module('basic_fields', { form.destroy(); }); + QUnit.test('text field translatable', function (assert) { + assert.expect(3); + + this.data.partner.fields.txt.translate = true; + + var multi_lang = _t.database.multi_lang; + _t.database.multi_lang = true; + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '<form string="Partners">' + + '<sheet>' + + '<group>' + + '<field name="txt"/>' + + '</group>' + + '</sheet>' + + '</form>', + res_id: 1, + mockRPC: function (route, args) { + if (route === "/web/dataset/call_button" && args.method === 'translate_fields') { + assert.deepEqual(args.args, ["partner",1,"txt",{}], 'should call "call_button" route'); + return $.when(); + } + return this._super.apply(this, arguments); + }, + }); + form.$buttons.find('.o_form_button_edit').click(); + var $button = form.$('textarea + .o_field_translate'); + assert.strictEqual($button.length, 1, "should have a translate button"); + $button.click(); + form.destroy(); + + form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '<form string="Partners">' + + '<sheet>' + + '<group>' + + '<field name="txt"/>' + + '</group>' + + '</sheet>' + + '</form>', + }); + $button = form.$('textarea + .o_field_translate'); + assert.strictEqual($button.length, 0, "should not have a translate button in create mode"); + form.destroy(); + + _t.database.multi_lang = multi_lang; + }); + QUnit.module('FieldBinary'); QUnit.test('binary fields are correctly rendered', function (assert) { |
