summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/fields/basic_fields_tests.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/tests/fields/basic_fields_tests.js')
-rw-r--r--addons/web/static/tests/fields/basic_fields_tests.js70
1 files changed, 61 insertions, 9 deletions
diff --git a/addons/web/static/tests/fields/basic_fields_tests.js b/addons/web/static/tests/fields/basic_fields_tests.js
index a5620212500..e8060e23e58 100644
--- a/addons/web/static/tests/fields/basic_fields_tests.js
+++ b/addons/web/static/tests/fields/basic_fields_tests.js
@@ -124,6 +124,19 @@ QUnit.module('basic_fields', {
position: "after",
}]
},
+ "ir.translation": {
+ fields: {
+ lang_code: {type: "char"},
+ value: {type: "char"},
+ res_id: {type: "integer"}
+ },
+ records: [{
+ id: 99,
+ res_id: 37,
+ value: '',
+ lang_code: 'en_US'
+ }]
+ },
};
}
}, function () {
@@ -1059,7 +1072,7 @@ QUnit.module('basic_fields', {
});
QUnit.test('char field translatable', async function (assert) {
- assert.expect(3);
+ assert.expect(4);
this.data.partner.fields.foo.translate = true;
@@ -1081,7 +1094,13 @@ QUnit.module('basic_fields', {
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 Promise.resolve();
+ return Promise.resolve({
+ domain: [],
+ context: {search_default_name: 'partnes,foo'},
+ });
+ }
+ if (route === "/web/dataset/call_kw/res.lang/get_installed") {
+ return Promise.resolve([["en_US"], ["fr_BE"]]);
}
return this._super.apply(this, arguments);
},
@@ -1089,10 +1108,27 @@ QUnit.module('basic_fields', {
await testUtils.form.clickEdit(form);
var $button = form.$('input[type="text"].o_field_char + .o_field_translate');
assert.strictEqual($button.length, 1, "should have a translate button");
+ assert.strictEqual($button.text(), 'EN', 'the button should have as test the current language');
await testUtils.dom.click($button);
+ await testUtils.nextTick();
+
+ assert.containsOnce($(document), '.modal', 'a translate modal should be visible');
+
form.destroy();
- form = await createView({
+ _t.database.multi_lang = multiLang;
+ });
+
+ QUnit.test('char field translatable in create mode', async function (assert) {
+ assert.expect(1);
+
+ this.data.partner.fields.foo.translate = true;
+
+ var multiLang = _t.database.multi_lang;
+ _t.database.multi_lang = true;
+
+
+ var form = await createView({
View: FormView,
model: 'partner',
data: this.data,
@@ -1104,8 +1140,8 @@ QUnit.module('basic_fields', {
'</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");
+ var $button = form.$('input[type="text"].o_field_char + .o_field_translate');
+ assert.strictEqual($button.length, 1, "should have a translate button in create mode");
form.destroy();
_t.database.multi_lang = multiLang;
@@ -1716,7 +1752,13 @@ QUnit.module('basic_fields', {
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 Promise.resolve();
+ return Promise.resolve({
+ domain: [],
+ context: {search_default_name: 'partnes,foo'},
+ });
+ }
+ if (route === "/web/dataset/call_kw/res.lang/get_installed") {
+ return Promise.resolve([["en_US"], ["fr_BE"]]);
}
return this._super.apply(this, arguments);
},
@@ -1725,9 +1767,19 @@ QUnit.module('basic_fields', {
var $button = form.$('textarea + .o_field_translate');
assert.strictEqual($button.length, 1, "should have a translate button");
await testUtils.dom.click($button);
+ assert.containsOnce($(document), '.modal', 'there should be a translation modal');
form.destroy();
+ _t.database.multi_lang = multiLang;
+ });
+
+ QUnit.test('text field translatable in create mode', async function (assert) {
+ assert.expect(1);
+
+ this.data.partner.fields.txt.translate = true;
- form = await createView({
+ var multiLang = _t.database.multi_lang;
+ _t.database.multi_lang = true;
+ var form = await createView({
View: FormView,
model: 'partner',
data: this.data,
@@ -1739,8 +1791,8 @@ QUnit.module('basic_fields', {
'</sheet>' +
'</form>',
});
- $button = form.$('textarea + .o_field_translate');
- assert.strictEqual($button.length, 0, "should not have a translate button in create mode");
+ var $button = form.$('textarea + .o_field_translate');
+ assert.strictEqual($button.length, 1, "should have a translate button in create mode");
form.destroy();
_t.database.multi_lang = multiLang;