summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/fields
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/tests/fields')
-rw-r--r--addons/web/static/tests/fields/field_utils_tests.js13
-rw-r--r--addons/web/static/tests/fields/relational_fields_tests.js84
2 files changed, 97 insertions, 0 deletions
diff --git a/addons/web/static/tests/fields/field_utils_tests.js b/addons/web/static/tests/fields/field_utils_tests.js
index 84e1ae95bd6..6b7cda13264 100644
--- a/addons/web/static/tests/fields/field_utils_tests.js
+++ b/addons/web/static/tests/fields/field_utils_tests.js
@@ -260,5 +260,18 @@ QUnit.test('parse monetary', function(assert) {
session.currencies = originalCurrencies;
});
+
+QUnit.test('parse percentage', function(assert) {
+ assert.expect(7);
+
+ assert.strictEqual(fieldUtils.parse.percentage(""), 0);
+ assert.strictEqual(fieldUtils.parse.percentage("0"), 0);
+ assert.strictEqual(fieldUtils.parse.percentage("0%"), 0);
+ assert.strictEqual(fieldUtils.parse.percentage("0.02"), 0.02);
+ assert.strictEqual(fieldUtils.parse.percentage("1"), 1);
+ assert.strictEqual(fieldUtils.parse.percentage("2%"), 0.02);
+ assert.strictEqual(fieldUtils.parse.percentage("100%"), 1);
+})
+
});
});
diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js
index f64e4e32e91..9c7c6363a40 100644
--- a/addons/web/static/tests/fields/relational_fields_tests.js
+++ b/addons/web/static/tests/fields/relational_fields_tests.js
@@ -13544,6 +13544,90 @@ QUnit.module('relational_fields', {
form.destroy();
});
+ QUnit.test('one2many with extra field from server not in (inline) form', function (assert) {
+ assert.expect(1);
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<field name="p" >' +
+ '<tree>' +
+ '<field name="datetime"/>' +
+ '<field name="display_name"/>' +
+ '</tree>' +
+ '<form>' +
+ '<field name="display_name"/>' +
+ '</form>' +
+ '</field>' +
+ '</form>',
+ res_id: 1,
+ viewOptions: {
+ mode: 'edit',
+ },
+ });
+
+ var x2mList = form.$('.o_field_x2many_list[name=p]');
+
+ // Add a record in the list
+ x2mList.find('.o_field_x2many_list_row_add a').click();
+
+ var modal = $('.modal-lg');
+
+ var nameInput = modal.find('input.o_input[name=display_name]');
+ nameInput.val('michelangelo').trigger('input');
+
+ // Save the record in the modal (though it is still virtual)
+ modal.find('.btn-primary').first().click();
+
+ assert.equal(x2mList.find('.o_data_row').length, 1,
+ 'There should be 1 records in the x2m list');
+
+ form.destroy();
+ });
+
+ QUnit.test('one2many with extra X2many field from server not in inline form', function (assert) {
+ assert.expect(1);
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<field name="p" >' +
+ '<tree>' +
+ '<field name="turtles"/>' +
+ '<field name="display_name"/>' +
+ '</tree>' +
+ '<form>' +
+ '<field name="display_name"/>' +
+ '</form>' +
+ '</field>' +
+ '</form>',
+ res_id: 1,
+ viewOptions: {
+ mode: 'edit',
+ },
+ });
+
+ var x2mList = form.$('.o_field_x2many_list[name=p]');
+
+ // Add a first record in the list
+ x2mList.find('.o_field_x2many_list_row_add a').click();
+
+ // Save & New
+ $('.modal-lg').find('.btn-primary').eq(1).click();
+
+ // Save & Close
+ $('.modal-lg').find('.btn-primary').eq(0).click();
+
+ assert.equal(x2mList.find('.o_data_row').length, 2,
+ 'There should be 2 records in the x2m list');
+
+ form.destroy();
+ });
+
QUnit.test('one2many invisible depends on parent field', function (assert) {
assert.expect(4);