summaryrefslogtreecommitdiff
path: root/addons/web/static/test/fields/basic_fields_tests.js
diff options
context:
space:
mode:
authorDavid Monjoie <dmo@odoo.com>2017-03-27 14:31:57 +0200
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commit53726d093fb54c18362d0ab36b1fe41147c7aeb2 (patch)
tree3653b133f1f32212a3c2a7f42c5049f7bfd9bf15 /addons/web/static/test/fields/basic_fields_tests.js
parent1b08fa43abc046b3952f2c7c636931cdef4f0adf (diff)
[ADD] web: add statinfo widget 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.js157
1 files changed, 157 insertions, 0 deletions
diff --git a/addons/web/static/test/fields/basic_fields_tests.js b/addons/web/static/test/fields/basic_fields_tests.js
index b57c6246b5f..afcc04aa693 100644
--- a/addons/web/static/test/fields/basic_fields_tests.js
+++ b/addons/web/static/test/fields/basic_fields_tests.js
@@ -2202,6 +2202,163 @@ QUnit.module('basic_fields', {
});
+ QUnit.module('StatInfo');
+
+ QUnit.test('statinfo widget in form view', function (assert) {
+ assert.expect(9);
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<sheet>' +
+ '<div class="oe_button_box" name="button_box">' +
+ '<button class="oe_stat_button" name="items" type="object" icon="fa-gear">' +
+ '<field name="int_field" widget="statinfo"/>' +
+ '</button>' +
+ '</div>' +
+ '<group>' +
+ '<field name="foo"/>' +
+ '</group>' +
+ '</sheet>' +
+ '</form>',
+ res_id: 1,
+ });
+
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info').length, 1,
+ "should have one stat button");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_value').text(),
+ '10', "should have 10 as value");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_text').text(),
+ 'int_field', "should have 'int_field' as text");
+
+ // switch to edit mode and check the result
+ form.$buttons.find('.o_form_button_edit').click();
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info').length, 1,
+ "should still have one stat button");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_value').text(),
+ '10', "should still have 10 as value");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_text').text(),
+ 'int_field', "should have 'int_field' as text");
+
+ // save
+ form.$buttons.find('.o_form_button_save').click();
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info').length, 1,
+ "should have one stat button");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_value').text(),
+ '10', "should have 10 as value");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_text').text(),
+ 'int_field', "should have 'int_field' as text");
+
+ form.destroy();
+ });
+
+ QUnit.test('statinfo widget in form view with specific label_field', function (assert) {
+ assert.expect(9);
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<sheet>' +
+ '<div class="oe_button_box" name="button_box">' +
+ '<button class="oe_stat_button" name="items" type="object" icon="fa-gear">' +
+ '<field string="Useful stat button" name="int_field" widget="statinfo" ' +
+ 'options="{\'label_field\': \'foo\'}"/>' +
+ '</button>' +
+ '</div>' +
+ '<group>' +
+ '<field name="foo" invisible="1"/>' +
+ '<field name="bar"/>' +
+ '</group>' +
+ '</sheet>' +
+ '</form>',
+ res_id: 1,
+ });
+
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info').length, 1,
+ "should have one stat button");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_value').text(),
+ '10', "should have 10 as value");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_text').text(),
+ 'yop', "should have 'yop' as text, since it is the value of field foo");
+
+ // switch to edit mode and check the result
+ form.$buttons.find('.o_form_button_edit').click();
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info').length, 1,
+ "should still have one stat button");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_value').text(),
+ '10', "should still have 10 as value");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_text').text(),
+ 'yop', "should have 'yop' as text, since it is the value of field foo");
+
+ // save
+ form.$buttons.find('.o_form_button_save').click();
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info').length, 1,
+ "should have one stat button");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_value').text(),
+ '10', "should have 10 as value");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_text').text(),
+ 'yop', "should have 'yop' as text, since it is the value of field foo");
+
+ form.destroy();
+ });
+
+ QUnit.test('statinfo widget in form view with no label', function (assert) {
+ assert.expect(9);
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<sheet>' +
+ '<div class="oe_button_box" name="button_box">' +
+ '<button class="oe_stat_button" name="items" type="object" icon="fa-gear">' +
+ '<field string="Useful stat button" name="int_field" widget="statinfo" ' +
+ 'options="{\'nolabel\': \'true\'}"/>' +
+ '</button>' +
+ '</div>' +
+ '<group>' +
+ '<field name="foo" invisible="1"/>' +
+ '<field name="bar"/>' +
+ '</group>' +
+ '</sheet>' +
+ '</form>',
+ res_id: 1,
+ });
+
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info').length, 1,
+ "should have one stat button");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_value').text(),
+ '10', "should have 10 as value");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_text').text(),
+ '', "should not have any label");
+
+ // switch to edit mode and check the result
+ form.$buttons.find('.o_form_button_edit').click();
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info').length, 1,
+ "should still have one stat button");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_value').text(),
+ '10', "should still have 10 as value");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_text').text(),
+ '', "should not have any label");
+
+ // save
+ form.$buttons.find('.o_form_button_save').click();
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info').length, 1,
+ "should have one stat button");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_value').text(),
+ '10', "should have 10 as value");
+ assert.strictEqual(form.$('.oe_stat_button .o_form_field.o_stat_info .o_stat_text').text(),
+ '', "should not have any label");
+
+ form.destroy();
+ });
+
+
QUnit.module('FieldDomain');
QUnit.test('basic domain field usage is ok', function (assert) {