summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/fields
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-04-18 18:20:40 +0200
committerChristophe Simonis <chs@odoo.com>2018-04-18 18:20:40 +0200
commitfed775bc0c2d70463206bbdddd3cce9ae8469e6a (patch)
tree03fd8410a57a49c39658f1ba184e29ccef5b3291 /addons/web/static/tests/fields
parent4d2e22bc392f27d920542e6ca025273080e5df77 (diff)
parent8c64159b8847dc465a21415c085d6526d280be02 (diff)
[MERGE] forward port branch 11.0 up to 8c64159b884
Diffstat (limited to 'addons/web/static/tests/fields')
-rw-r--r--addons/web/static/tests/fields/basic_fields_tests.js29
-rw-r--r--addons/web/static/tests/fields/relational_fields_tests.js58
2 files changed, 86 insertions, 1 deletions
diff --git a/addons/web/static/tests/fields/basic_fields_tests.js b/addons/web/static/tests/fields/basic_fields_tests.js
index f321db1d172..08b7826b4c8 100644
--- a/addons/web/static/tests/fields/basic_fields_tests.js
+++ b/addons/web/static/tests/fields/basic_fields_tests.js
@@ -1736,7 +1736,6 @@ QUnit.module('basic_fields', {
assert.strictEqual(form.$('div[name="document"] > img').attr('width'), "90",
"the image should correctly set its attributes");
form.destroy();
-
});
QUnit.test('image fields in subviews are loaded correctly', function (assert) {
@@ -1788,6 +1787,34 @@ QUnit.module('basic_fields', {
form.destroy();
});
+ QUnit.test('image fields with required attribute', function (assert) {
+ assert.expect(2);
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<field name="document" required="1" widget="image"/>' +
+ '</form>',
+ mockRPC: function (route, args) {
+ if (args.method === 'create') {
+ throw new Error("Should not do a create RPC with unset required image field");
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+
+ form.$buttons.find('.o_form_button_save').click();
+
+ assert.ok(form.$('.o_form_view').hasClass('o_form_editable'),
+ "form view should still be editable");
+ assert.ok(form.$('.o_field_widget').hasClass('o_field_invalid'),
+ "image field should be displayed as invalid");
+
+ form.destroy();
+ });
+
QUnit.module('JournalDashboardGraph', {
beforeEach: function () {
_.extend(this.data.partner.fields, {
diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js
index 64ffc31096c..a14d14f67d7 100644
--- a/addons/web/static/tests/fields/relational_fields_tests.js
+++ b/addons/web/static/tests/fields/relational_fields_tests.js
@@ -11326,6 +11326,38 @@ QUnit.module('relational_fields', {
form.destroy();
});
+ QUnit.test('default_get a reference field in a x2m', function (assert) {
+ assert.expect(1);
+
+ this.data.partner.fields.turtles.default = [
+ [0, false, {turtle_ref: 'product,37'}]
+ ];
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<sheet>' +
+ '<field name="turtles">' +
+ '<tree>' +
+ '<field name="turtle_ref"/>' +
+ '</tree>' +
+ '</field>' +
+ '</sheet>' +
+ '</form>',
+ viewOptions: {
+ mode: 'edit',
+ },
+ archs: {
+ 'turtle,false,form': '<form><field name="display_name"/><field name="turtle_ref"/></form>',
+ },
+ });
+ assert.strictEqual(form.$('.o_field_one2many[name="turtles"] .o_data_row:first').text(), "xphone",
+ "the default value should be correctly handled");
+ form.destroy();
+ });
+
QUnit.test('widget reference on char field, reset by onchange', function (assert) {
assert.expect(4);
@@ -11376,6 +11408,32 @@ QUnit.module('relational_fields', {
form.destroy();
});
+ QUnit.test('reference and list navigation', function (assert) {
+ assert.expect(2);
+
+ var list = createView({
+ View: ListView,
+ model: 'partner',
+ data: this.data,
+ arch: '<tree editable="bottom"><field name="reference"/></tree>',
+ });
+
+ // edit first row
+ list.$('.o_data_row .o_data_cell').first().click();
+ assert.strictEqual(list.$('.o_data_row:eq(0) .o_field_widget[name="reference"] input')[0], document.activeElement,
+ 'input of first data row should be selected');
+
+ // press TAB to go to next line
+ list.$('.o_data_row:eq(0) input').trigger($.Event('keydown', {
+ which: $.ui.keyCode.TAB,
+ keyCode: $.ui.keyCode.TAB,
+ }));
+ assert.strictEqual(list.$('.o_data_row:eq(1) .o_field_widget[name="reference"] select')[0], document.activeElement,
+ 'select of second data row should be selected');
+
+ list.destroy();
+ });
+
QUnit.test('one2many with extra field from server not in form', function (assert) {
assert.expect(6);