odoo.define('web.basic_fields_mobile_tests', function (require) { "use strict"; var FormView = require('web.FormView'); var ListView = require('web.ListView'); var testUtils = require('web.test_utils'); var createView = testUtils.createView; QUnit.module('fields', {}, function () { QUnit.module('basic_fields', { beforeEach: function () { this.data = { partner: { fields: { date: {string: "A date", type: "date", searchable: true}, datetime: {string: "A datetime", type: "datetime", searchable: true}, display_name: {string: "Displayed name", type: "char", searchable: true}, foo: {string: "Foo", type: "char", default: "My little Foo Value", searchable: true, trim: true}, bar: {string: "Bar", type: "boolean", default: true, searchable: true}, int_field: {string: "int_field", type: "integer", sortable: true, searchable: true}, qux: {string: "Qux", type: "float", digits: [16,1], searchable: true}, }, records: [{ id: 1, date: "2017-02-03", datetime: "2017-02-08 10:00:00", display_name: "first record", bar: true, foo: "yop", int_field: 10, qux: 0.44444, }, { id: 2, display_name: "second record", bar: true, foo: "blip", int_field: 0, qux: 0, }, { id: 4, display_name: "aaa", foo: "abc", int_field: false, qux: false, }], onchanges: {}, }, }; } }, function () { QUnit.module('PhoneWidget'); QUnit.test('phone field in form view on extra small screens', async function (assert) { assert.expect(7); var form = await createView({ View: FormView, model: 'partner', data: this.data, arch:'
', res_id: 1, }); var $phoneLink = form.$('a.o_form_uri.o_field_widget'); assert.strictEqual($phoneLink.length, 1, "should have a anchor with correct classes"); assert.strictEqual($phoneLink.text(), 'yop', "value should be displayed properly"); assert.hasAttrValue($phoneLink, 'href', 'tel:yop', "should have proper tel prefix"); // switch to edit mode and check the result await testUtils.form.clickEdit(form); assert.containsOnce(form, 'input[type="text"].o_field_widget', "should have an int for the phone field"); assert.strictEqual(form.$('input[type="text"].o_field_widget').val(), 'yop', "input should contain field value in edit mode"); // change value in edit mode await testUtils.fields.editInput(form.$('input[type="text"].o_field_widget'), 'new'); // save await testUtils.form.clickSave(form); $phoneLink = form.$('a.o_form_uri.o_field_widget'); assert.strictEqual($phoneLink.text(), 'new', "new value should be displayed properly"); assert.hasAttrValue($phoneLink, 'href', 'tel:new', "should still have proper tel prefix"); form.destroy(); }); QUnit.test('phone field in editable list view on extra small screens', async function (assert) { assert.expect(10); var list = await createView({ View: ListView, model: 'partner', data: this.data, arch: '