summaryrefslogtreecommitdiff
path: root/addons/web/static/test/fields/basic_fields_tests.js
diff options
context:
space:
mode:
authorDavid Monjoie <dmo@odoo.com>2017-03-16 15:29:32 +0100
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commitc22b85dd7355ebea052b8109d9fc45b542dd559a (patch)
tree0e9e286964ec6e8d62ad9a0c7796797dba4edf67 /addons/web/static/test/fields/basic_fields_tests.js
parent93d09397af8c97a4e2092bfe0cc1215010a8fe0b (diff)
[ADD] web: add float field tests and documentation
Diffstat (limited to 'addons/web/static/test/fields/basic_fields_tests.js')
-rw-r--r--addons/web/static/test/fields/basic_fields_tests.js100
1 files changed, 90 insertions, 10 deletions
diff --git a/addons/web/static/test/fields/basic_fields_tests.js b/addons/web/static/test/fields/basic_fields_tests.js
index b9f01d6a654..d9c94929671 100644
--- a/addons/web/static/test/fields/basic_fields_tests.js
+++ b/addons/web/static/test/fields/basic_fields_tests.js
@@ -37,7 +37,7 @@ QUnit.module('basic_fields', {
bar: true,
foo: "yop",
int_field: 10,
- qux: 0.44,
+ qux: 0.44444,
p: [],
timmy: [],
trululu: 4,
@@ -47,7 +47,7 @@ QUnit.module('basic_fields', {
bar: true,
foo: "blip",
int_field: 0,
- qux: 13,
+ qux: 0,
p: [],
timmy: [],
trululu: 1,
@@ -58,9 +58,10 @@ QUnit.module('basic_fields', {
foo: "abc",
sequence: 9,
int_field: false,
+ qux: false,
},
- {id: 3, bar: true, foo: "gnap", int_field: 17, qux: -3, m2o: 1, m2m: []},
- {id: 4, bar: false, foo: "blip", int_field: -4, qux: 9, m2o: 1, m2m: [1]}],
+ {id: 3, bar: true, foo: "gnap", int_field: 17, qux: -3.89859, m2o: 1, m2m: []},
+ {id: 5, bar: false, foo: "blop", int_field: -4, qux: 9.1, m2o: 1, m2m: [1]}],
onchanges: {},
},
product: {
@@ -234,18 +235,25 @@ QUnit.module('basic_fields', {
QUnit.module('FieldFloat');
- QUnit.test('float field rendering in list view', function (assert) {
+ QUnit.test('float field when unset', function(assert) {
assert.expect(1);
- var list = createView({
- View: ListView,
+ var form = createView({
+ View: FormView,
model: 'partner',
data: this.data,
- arch: '<tree><field name="qux"/></tree>',
+ arch:'<form string="Partners">' +
+ '<sheet>' +
+ '<field name="qux" digits="[5,3]"/>' +
+ '</sheet>' +
+ '</form>',
+ res_id: 4,
});
- assert.strictEqual(list.$('.o_list_number').length, 5, "should have 5 cells with .o_list_number");
- list.destroy();
+ assert.ok(form.$('.o_form_field').hasClass('o_form_field_empty'),
+ 'Non-set float field should be recognized as unset.');
+
+ form.destroy();
});
QUnit.test('float fields use correct digit precision', function (assert) {
@@ -269,6 +277,78 @@ QUnit.module('basic_fields', {
form.destroy();
});
+ QUnit.test('float field in form view', function(assert) {
+ assert.expect(5);
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch:'<form string="Partners">' +
+ '<sheet>' +
+ '<field name="qux" widget="float" digits="[5,3]"/>' +
+ '</sheet>' +
+ '</form>',
+ res_id: 2,
+ });
+
+ assert.ok(!form.$('.o_form_field').hasClass('o_form_field_empty'),
+ 'Float field should be considered set for value 0.');
+ assert.strictEqual(form.$('.o_form_field.o_form_field_number').first().text(), '0.000',
+ 'The value should be displayed properly.')
+
+ form.$buttons.find('.o_form_button_edit').click();
+ assert.strictEqual(form.$('input.o_form_input').val(), '0.000',
+ 'The value should be rendered with correct precision.')
+
+ form.$('input.o_form_input').val('108.2458938598598').trigger('input');
+ assert.strictEqual(form.$('input.o_form_input').val(), '108.2458938598598',
+ 'The value should not be formated yet.')
+
+ form.$('input.o_form_input').val('18.8958938598598').trigger('input');
+ form.$buttons.find('.o_form_button_save').click();
+ assert.strictEqual(form.$('.o_form_field.o_form_field_number').first().text(), '18.896',
+ 'The new value should be rounded properly.')
+
+ form.destroy();
+ });
+
+ QUnit.test('float field in editable list view', function (assert) {
+ assert.expect(4);
+
+ var list = createView({
+ View: ListView,
+ model: 'partner',
+ data: this.data,
+ arch: '<tree editable="bottom">' +
+ '<field name="qux" widget="float" digits="[5,3]"/>' +
+ '</tree>',
+ });
+
+ var zeroValues = list.$('td').filter(function() {return $(this).text() === '0.000'});
+ assert.strictEqual(zeroValues.length, 2,
+ 'Unset float values should be rendered as zeros.');
+
+ // switch to edit mode
+ var $cell = list.$('tr.o_data_row td:not(.o_list_record_selector)').first();
+ $cell.click();
+
+ assert.strictEqual(list.$('input.o_form_input').length, 1,
+ 'The view should have 1 input for editable float.')
+
+ list.$('input.o_form_input').val('108.2458938598598').trigger('input');
+ assert.strictEqual(list.$('input.o_form_input').val(), '108.2458938598598',
+ 'The value should not be formated yet.')
+
+ list.$('input.o_form_input').val('18.8958938598598').trigger('input');
+ list.$buttons.find('.o_list_button_save').click();
+ assert.strictEqual(list.$('.o_form_field.o_form_field_number').first().text(), '18.896',
+ 'The new value should be rounded properly.')
+
+ list.destroy();
+ });
+
+
QUnit.module('EmailWidget');