diff options
Diffstat (limited to 'addons/web/static/tests')
| -rw-r--r-- | addons/web/static/tests/helpers/mock_server.js | 39 | ||||
| -rw-r--r-- | addons/web/static/tests/views/abstract_view_tests.js | 4 | ||||
| -rw-r--r-- | addons/web/static/tests/views/basic_model_tests.js | 6 | ||||
| -rw-r--r-- | addons/web/static/tests/views/kanban_model_tests.js | 4 | ||||
| -rw-r--r-- | addons/web/static/tests/views/kanban_tests.js | 124 | ||||
| -rw-r--r-- | addons/web/static/tests/views/list_tests.js | 124 | ||||
| -rw-r--r-- | addons/web/static/tests/views/search_view_tests.js | 2 | ||||
| -rw-r--r-- | addons/web/static/tests/views/view_dialogs_tests.js | 17 |
8 files changed, 225 insertions, 95 deletions
diff --git a/addons/web/static/tests/helpers/mock_server.js b/addons/web/static/tests/helpers/mock_server.js index 0f96b098bb8..d2060de9f59 100644 --- a/addons/web/static/tests/helpers/mock_server.js +++ b/addons/web/static/tests/helpers/mock_server.js @@ -808,7 +808,8 @@ var MockServer = Class.extend({ * @param {string[]} kwargs.fields fields that we are aggregating * @param {Array} kwargs.domain the domain used for the read_group * @param {boolean} kwargs.lazy still mostly ignored - * @param {integer} kwargs.limit ignored as well + * @param {integer} [kwargs.limit] + * @param {integer} [kwargs.offset] * @returns {Object[]} */ _mockReadGroup: function (model, kwargs) { @@ -982,6 +983,11 @@ var MockServer = Class.extend({ }); } + if (kwargs.limit) { + var offset = kwargs.offset || 0; + result = result.slice(offset, kwargs.limit + offset); + } + return result; }, /** @@ -1165,6 +1171,34 @@ var MockServer = Class.extend({ return true; }, /** + * Simulate a 'web_read_group' call to the server. + * + * Note: some keys in kwargs are still ignored + * + * @private + * @param {string} model a string describing an existing model + * @param {Object} kwargs various options supported by read_group + * @param {string[]} kwargs.groupby fields that we are grouping + * @param {string[]} kwargs.fields fields that we are aggregating + * @param {Array} kwargs.domain the domain used for the read_group + * @param {boolean} kwargs.lazy still mostly ignored + * @param {integer} [kwargs.limit] + * @param {integer} [kwargs.offset] + * @returns {Object[]} + */ + _mockWebReadGroup: function (model, kwargs) { + var allGroups = this._mockReadGroup(model, { + domain: kwargs.domain, + fields: ['display_name'], + groupby: kwargs.groupby, + lazy: kwargs.lazy, + }); + return { + groups: this._mockReadGroup(model, kwargs), + length: allGroups.length, + }; + }, + /** * Simulate a 'write' operation * * @private @@ -1243,6 +1277,9 @@ var MockServer = Class.extend({ case 'read_group': return Promise.resolve(this._mockReadGroup(args.model, args.kwargs)); + case 'web_read_group': + return Promise.resolve(this._mockWebReadGroup(args.model, args.kwargs)); + case 'read_progress_bar': return Promise.resolve(this._mockReadProgressBar(args.model, args.kwargs)); diff --git a/addons/web/static/tests/views/abstract_view_tests.js b/addons/web/static/tests/views/abstract_view_tests.js index ba819379279..b2e0cee0dcd 100644 --- a/addons/web/static/tests/views/abstract_view_tests.js +++ b/addons/web/static/tests/views/abstract_view_tests.js @@ -129,8 +129,8 @@ QUnit.module('Views', { 'foo,false,search': '<search></search>', }, data: this.data, - mockRPC: function(route, args) { - if (args.method === 'read_group') { + mockRPC: function (route, args) { + if (args.method === 'web_read_group') { assert.deepEqual(args.kwargs.groupby, ['bar']); } return this._super.apply(this, arguments); diff --git a/addons/web/static/tests/views/basic_model_tests.js b/addons/web/static/tests/views/basic_model_tests.js index 2a9fbec6bd4..d840210d4ff 100644 --- a/addons/web/static/tests/views/basic_model_tests.js +++ b/addons/web/static/tests/views/basic_model_tests.js @@ -917,14 +917,14 @@ odoo.define('web.basic_model_tests', function (require) { Model: BasicModel, data: this.data, mockRPC: function (route, args) { - if (args.method === 'read_group' && filterEnabled) { + if (args.method === 'web_read_group' && filterEnabled) { // as this is not yet supported by the MockServer, simulates // a read_group that returns empty groups // this is the case for several models (e.g. project.task // grouped by stage_id) return this._super.apply(this, arguments).then(function (result) { // artificially filter out records of first group - result[0].product_id_count = 0; + result.groups[0].product_id_count = 0; return result; }); } @@ -982,7 +982,7 @@ odoo.define('web.basic_model_tests', function (require) { Model: BasicModel, data: this.data, mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { assert.deepEqual(args.kwargs.fields, ['foo', 'date'], "should have correctly trimmed the magic grouping info from the field name"); } diff --git a/addons/web/static/tests/views/kanban_model_tests.js b/addons/web/static/tests/views/kanban_model_tests.js index 29dd60c3d15..e69b08aa3a8 100644 --- a/addons/web/static/tests/views/kanban_model_tests.js +++ b/addons/web/static/tests/views/kanban_model_tests.js @@ -117,7 +117,7 @@ QUnit.module('Views', { // check the rpcs done assert.strictEqual(Object.keys(calledRoutes).length, 3, 'three different routes have been called'); - var nbReadGroups = calledRoutes['/web/dataset/call_kw/partner/read_group']; + var nbReadGroups = calledRoutes['/web/dataset/call_kw/partner/web_read_group']; var nbSearchRead = calledRoutes['/web/dataset/search_read']; var nbNameCreate = calledRoutes['/web/dataset/call_kw/product/name_create']; assert.strictEqual(nbReadGroups, 1, 'should have done 1 read_group'); @@ -170,7 +170,7 @@ QUnit.module('Views', { Model: KanbanModel, data: this.data, mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { assert.deepEqual(args.kwargs.groupby, ['product_id'], "the second level of groupBy should have been removed"); } diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index 4cb99e17314..280cf85291f 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -108,7 +108,7 @@ QUnit.module('Views', { '</t></templates></kanban>', groupBy: ['bar'], mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { // the lazy option is important, so the server can fill in // the empty groups assert.ok(args.kwargs.lazy, "should use lazy read_group"); @@ -485,7 +485,7 @@ QUnit.module('Views', { "first column should contain two records"); assert.verifySteps([ - 'read_group', // initial read_group + 'web_read_group', // initial read_group '/web/dataset/search_read', // initial search_read (first column) '/web/dataset/search_read', // initial search_read (second column) 'default_get', // quick create @@ -558,7 +558,7 @@ QUnit.module('Views', { "first column should contain two records"); assert.verifySteps([ - 'read_group', // initial read_group + 'web_read_group', // initial read_group '/web/dataset/search_read', // initial search_read (first column) '/web/dataset/search_read', // initial search_read (second column) 'load_views', // form view in quick create @@ -616,7 +616,7 @@ QUnit.module('Views', { "first column should contain three records"); assert.verifySteps([ - 'read_group', // initial read_group + 'web_read_group', // initial read_group '/web/dataset/search_read', // initial search_read (first column) '/web/dataset/search_read', // initial search_read (second column) 'default_get', // quick create @@ -683,7 +683,7 @@ QUnit.module('Views', { "first column should contain three records"); assert.verifySteps([ - 'read_group', // initial read_group + 'web_read_group', // initial read_group '/web/dataset/search_read', // initial search_read (first column) '/web/dataset/search_read', // initial search_read (second column) 'load_views', // form view in quick create @@ -735,7 +735,6 @@ QUnit.module('Views', { await testUtils.kanban.clickCreate(kanban); var $quickCreate = kanban.$('.o_kanban_group:first .o_kanban_quick_create'); - var $quickCreate = kanban.$('.o_kanban_group:first .o_kanban_quick_create'); assert.strictEqual($quickCreate.length, 1, "should have a quick create element in the first column"); assert.strictEqual($quickCreate.find('.o_field_widget[name=int_field]').val(), '4', @@ -748,7 +747,7 @@ QUnit.module('Views', { "onchange should have been triggered"); assert.verifySteps([ - 'read_group', // initial read_group + 'web_read_group', // initial read_group '/web/dataset/search_read', // initial search_read (first column) '/web/dataset/search_read', // initial search_read (second column) 'load_views', // form view in quick create @@ -1824,14 +1823,17 @@ QUnit.module('Views', { '</kanban>', groupBy: ['product_id'], mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { // override read_group to return empty groups, as this is // the case for several models (e.g. project.task grouped // by stage_id) - var result = [ - {__domain: [['product_id', '=', 3]], product_id_count: 0}, - {__domain: [['product_id', '=', 5]], product_id_count: 0}, - ]; + var result = { + groups: [ + {__domain: [['product_id', '=', 3]], product_id_count: 0}, + {__domain: [['product_id', '=', 5]], product_id_count: 0}, + ], + length: 2, + }; return Promise.resolve(result); } return this._super.apply(this, arguments); @@ -2408,11 +2410,11 @@ QUnit.module('Views', { await kanban.reload(); assert.verifySteps([ - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', 'read', - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', 'read', @@ -2444,11 +2446,11 @@ QUnit.module('Views', { await kanban.reload(kanban); assert.verifySteps([ - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', 'read', - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', 'read', @@ -2487,11 +2489,11 @@ QUnit.module('Views', { await kanban.reload(); assert.verifySteps([ - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', 'name_get', - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', 'name_get', @@ -2766,7 +2768,7 @@ QUnit.module('Views', { '<div><field name="foo"/></div>' + '</t></templates></kanban>', mockRPC: function (route, args) { - if (route === '/web/dataset/call_kw/partner/read_group') { + if (route === '/web/dataset/call_kw/partner/web_read_group') { readGroupCount++; var correctGroupBy; if (readGroupCount === 2) { @@ -2976,10 +2978,10 @@ QUnit.module('Views', { '</kanban>', groupBy: ['product_id'], mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { return this._super.apply(this, arguments).then(function (result) { - result[2].__fold = true; - result[8].__fold = true; + result.groups[2].__fold = true; + result.groups[8].__fold = true; return result; }); } @@ -3119,7 +3121,7 @@ QUnit.module('Views', { 'Undefined column could not be edited'); assert.ok(!kanban.$('.o_kanban_group:first .o_column_archive_records').length, "Records of undefined column could not be archived"); assert.ok(!kanban.$('.o_kanban_group:first .o_column_unarchive_records').length, "Records of undefined column could not be restored"); - assert.verifySteps(['read_group', 'unlink', 'read_group']); + assert.verifySteps(['web_read_group', 'unlink', 'web_read_group']); assert.strictEqual(kanban.renderer.widgets.length, 2, "the old widgets should have been correctly deleted"); @@ -3139,14 +3141,14 @@ QUnit.module('Views', { kanban.$('.o_kanban_header_title:last'), {position: 'right'} ); assert.deepEqual([3, newColumnID], resequencedIDs, - "moving the Undefined column should not affect order of other columns") + "moving the Undefined column should not affect order of other columns"); await testUtils.dom.dragAndDrop( kanban.$('.o_kanban_header_title:first'), kanban.$('.o_kanban_header_title:nth(1)'), {position: 'right'} ); await nextTick(); // wait for resequence after drag and drop assert.deepEqual([newColumnID, 3], resequencedIDs, - "moved column should be resequenced accordingly") + "moved column should be resequenced accordingly"); assert.verifySteps(['name_create', 'read', 'read', 'read']); kanban.destroy(); @@ -3474,12 +3476,12 @@ QUnit.module('Views', { '</kanban>', groupBy: ['product_id'], mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { // override read_group to return empty groups, as this is // the case for several models (e.g. project.task grouped // by stage_id) return this._super.apply(this, arguments).then(function (result) { - _.each(result, function (group) { + _.each(result.groups, function (group) { group[args.kwargs.groupby[0] + '_count'] = 0; }); return result; @@ -3595,10 +3597,13 @@ QUnit.module('Views', { '</kanban>', groupBy: ['product_id'], mockRPC: function (route, args) { - if (args.method === 'read_group') { - var result = [ - {__domain: [['product_id', '=', 3]], product_id_count: 0, product_id: [3, 'hello']}, - ]; + if (args.method === 'web_read_group') { + var result = { + groups: [ + {__domain: [['product_id', '=', 3]], product_id_count: 0, product_id: [3, 'hello']}, + ], + length: 1, + }; return Promise.resolve(result); } return this._super.apply(this, arguments); @@ -3637,10 +3642,13 @@ QUnit.module('Views', { '</kanban>', groupBy: ['product_id'], mockRPC: function (route, args) { - if (args.method === 'read_group') { - var result = [ - {__domain: [['product_id', '=', 3]], product_id_count: 0, product_id: [3, 'hello']}, - ]; + if (args.method === 'web_read_group') { + var result = { + groups: [ + {__domain: [['product_id', '=', 3]], product_id_count: 0, product_id: [3, 'hello']}, + ], + length: 1, + }; return Promise.resolve(result); } return this._super.apply(this, arguments); @@ -3682,10 +3690,13 @@ QUnit.module('Views', { '</kanban>', groupBy: ['product_id'], mockRPC: function (route, args) { - if (args.method === 'read_group') { - var result = [ - {__domain: [['product_id', '=', 3]], product_id_count: 0, product_id: [3, 'hello']}, - ]; + if (args.method === 'web_read_group') { + var result = { + groups: [ + {__domain: [['product_id', '=', 3]], product_id_count: 0, product_id: [3, 'hello']}, + ], + length: 1, + }; return Promise.resolve(result); } return this._super.apply(this, arguments); @@ -3726,10 +3737,13 @@ QUnit.module('Views', { '</kanban>', groupBy: ['product_id'], mockRPC: function (route, args) { - if (args.method === 'read_group') { - var result = [ - {__domain: [['product_id', '=', 3]], product_id_count: 0, product_id: [3, 'hello']}, - ]; + if (args.method === 'web_read_group') { + var result = { + groups: [ + {__domain: [['product_id', '=', 3]], product_id_count: 0, product_id: [3, 'hello']}, + ], + length: 1, + }; return Promise.resolve(result); } return this._super.apply(this, arguments); @@ -4727,12 +4741,12 @@ QUnit.module('Views', { assert.verifySteps([ // initial load - 'read_group', + 'web_read_group', 'read_progress_bar', '/web/dataset/search_read', '/web/dataset/search_read', // reload - 'read_group', + 'web_read_group', 'read_progress_bar', '/web/dataset/search_read', '/web/dataset/search_read', @@ -5061,7 +5075,7 @@ QUnit.module('Views', { groupBy: ['bar'], mockRPC: function (route, args) { var result = this._super(route, args); - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { var isFirstUpdate = _.isEmpty(args.kwargs.domain) && args.kwargs.groupby && args.kwargs.groupby[0] === 'bar'; @@ -5200,22 +5214,22 @@ QUnit.module('Views', { '</t></templates></kanban>', groupBy: ['state'], mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { // override read_group to return empty groups, as this is // the case for several models (e.g. project.task grouped // by stage_id) return this._super.apply(this, arguments).then(function (result) { // add 2 empty columns in the middle - result.splice(1,0,{state_count:0,state:'def', - __domain:[["state","=","def"]]}); - result.splice(1,0,{state_count:0,state:'def', - __domain:[["state","=","def"]]}); + result.groups.splice(1, 0, {state_count: 0, state: 'def', + __domain: [["state", "=", "def"]]}); + result.groups.splice(1, 0, {state_count: 0, state: 'def', + __domain: [["state", "=", "def"]]}); // add 1 empty column in the beginning and the end - result.unshift({state_count:0,state:'def', - __domain:[["state","=","def"]]}); - result.push({state_count:0,state:'def', - __domain:[["state","=","def"]]}); + result.groups.unshift({state_count: 0, state: 'def', + __domain: [["state", "=", "def"]]}); + result.groups.push({state_count: 0, state: 'def', + __domain: [["state", "=", "def"]]}); return result; }); } diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js index 66201d3c38b..fbed65758b5 100644 --- a/addons/web/static/tests/views/list_tests.js +++ b/addons/web/static/tests/views/list_tests.js @@ -1026,7 +1026,7 @@ QUnit.module('Views', { groupBy: ['foo'], arch: '<tree editable="bottom"><field name="foo" /><field name="int_field" sum="Sum"/></tree>', mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { assert.step(args.kwargs.orderby || 'default order'); } return this._super.apply(this, arguments); @@ -1042,7 +1042,7 @@ QUnit.module('Views', { assert.strictEqual(list.$('tbody .o_list_number').text(), '51017', "order should be 5, 10, 17"); - await testUtils.dom.click(list.$('.o_column_sortable')); + await testUtils.dom.click(list.$('.o_column_sortable')); assert.strictEqual(list.$('tbody .o_list_number').text(), '17105', "initial order should be 17, 10, 5"); assert.strictEqual(list.$('tfoot td:last()').text(), '32', "total should still be 32"); @@ -1055,10 +1055,10 @@ QUnit.module('Views', { QUnit.test('groups cannot be sorted on non-aggregable fields', async function (assert) { assert.expect(6); this.data.foo.fields.sort_field = {string: "sortable_field", type: "sting", sortable: true, default: "value"}; - _.each(this.data.records, function(elem) { + _.each(this.data.records, function (elem) { elem.sort_field = "value" + elem.id; }); - this.data.foo.fields.foo.sortable= true; + this.data.foo.fields.foo.sortable = true; var list = await createView({ View: ListView, model: 'foo', @@ -1066,7 +1066,7 @@ QUnit.module('Views', { groupBy: ['foo'], arch: '<tree editable="bottom"><field name="foo" /><field name="int_field"/><field name="sort_field"/></tree>', mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { assert.step(args.kwargs.orderby || 'default order'); } return this._super.apply(this, arguments); @@ -1252,7 +1252,7 @@ QUnit.module('Views', { assert.isVisible(list.pager.$el, "pager should be visible"); assert.strictEqual(list.pager.state.size, 4, "pager's size should be 4"); await list.update({ groupBy: ['bar']}); - assert.isNotVisible(list.pager.$el, "pager should be invisible"); + assert.strictEqual(list.pager.state.size, 2, "pager's size should be 2"); list.destroy(); }); @@ -2079,7 +2079,7 @@ QUnit.module('Views', { arch: '<tree><field name="id"/><field name="int_field"/></tree>', groupBy: ['m2o', 'foo'], mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { if (args.kwargs.groupby[0] === 'foo') { // nested read_group // called twice (once when opening the group, once when sorting) assert.deepEqual(args.kwargs.domain, [['m2o', '=', 1]], @@ -3709,18 +3709,19 @@ QUnit.module('Views', { mockRPC: function (route, args) { // Override of the read_group to display the row even if there is no record in it, // to mock the behavihour of some fields e.g stage_id on the sale order. - if (args.method === 'read_group' && args.kwargs.groupby[0] === "m2o") { - return Promise.resolve([ - { + if (args.method === 'web_read_group' && args.kwargs.groupby[0] === "m2o") { + return Promise.resolve({ + groups: [{ id: 8, - m2o:[1,"Value 1"], + m2o: [1, "Value 1"], m2o_count: 0 }, { id: 2, - m2o:[2,"Value 2"], + m2o: [2, "Value 2"], m2o_count: 1 - } - ]); + }], + length: 1, + }); } return this._super.apply(this, arguments); }, @@ -4065,6 +4066,38 @@ QUnit.module('Views', { delete widgetRegistry.map.asyncWidget; }); + QUnit.test('grouped lists with groups_limit attribute', async function (assert) { + assert.expect(8); + + var list = await createView({ + View: ListView, + model: 'foo', + data: this.data, + arch: '<tree groups_limit="3"><field name="foo"/></tree>', + groupBy: ['int_field'], + mockRPC: function (route, args) { + assert.step(args.method || route); + return this._super.apply(this, arguments); + }, + }); + + assert.containsN(list, '.o_group_header', 3); // page 1 + assert.containsNone(list, '.o_data_row'); + assert.containsOnce(list, '.o_pager_counter'); // has a pager + + await testUtils.dom.click(list.$('.o_pager_next')); // switch to page 2 + + assert.containsN(list, '.o_group_header', 1); // page 2 + assert.containsNone(list, '.o_data_row'); + + assert.verifySteps([ + 'web_read_group', // read_group page 1 + 'web_read_group', // read_group page 2 + ]); + + list.destroy(); + }); + QUnit.test('grouped list with expand attribute', async function (assert) { assert.expect(6); @@ -4084,7 +4117,7 @@ QUnit.module('Views', { assert.containsN(list, '.o_data_row', 4); assert.verifySteps([ - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', ]); @@ -4111,9 +4144,54 @@ QUnit.module('Views', { assert.containsN(list, '.o_group_header', 6); assert.verifySteps([ - 'read_group', // global - 'read_group', // first group - 'read_group', // second group + 'web_read_group', // global + 'web_read_group', // first group + 'web_read_group', // second group + ]); + + list.destroy(); + }); + + QUnit.test('grouped lists with expand attribute and a lot of groups', async function (assert) { + assert.expect(10); + + for (var i = 0; i < 15; i++) { + this.data.foo.records.push({foo: 'record ' + i, int_field: i}); + } + + var nbSearchRead = 0; + var list = await createView({ + View: ListView, + model: 'foo', + data: this.data, + arch: '<tree expand="1"><field name="foo"/></tree>', + groupBy: ['int_field'], + mockRPC: function (route, args) { + if (args.method === 'web_read_group') { + assert.step(args.method); + } + if (route === '/web/dataset/search_read') { + nbSearchRead++; + } + return this._super.apply(this, arguments); + }, + }); + + assert.containsN(list, '.o_group_header', 10); // page 1 + assert.containsN(list, '.o_data_row', 11); // one group contains two records + assert.strictEqual(nbSearchRead, 10); + assert.containsOnce(list, '.o_pager_counter'); // has a pager + + nbSearchRead = 0; + await testUtils.dom.click(list.$('.o_pager_next')); // switch to page 2 + + assert.containsN(list, '.o_group_header', 7); // page 2 + assert.containsN(list, '.o_data_row', 7); + assert.strictEqual(nbSearchRead, 7); + + assert.verifySteps([ + 'web_read_group', // read_group page 1 + 'web_read_group', // read_group page 2 ]); list.destroy(); @@ -4628,7 +4706,7 @@ QUnit.module('Views', { assert.hasClass(list.$('.o_data_row:nth(4)'), 'o_selected_row'); assert.verifySteps([ - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', 'write', @@ -4666,7 +4744,7 @@ QUnit.module('Views', { assert.containsOnce(list, 'tbody tr td:contains(new value)'); assert.verifySteps([ - 'read_group', + 'web_read_group', '/web/dataset/search_read', 'write', 'read', @@ -4709,7 +4787,7 @@ QUnit.module('Views', { assert.hasClass(list.$('tr.o_data_row:eq(3)'), 'o_selected_row'); assert.verifySteps([ - '/web/dataset/call_kw/foo/read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', 'default_get', @@ -4752,7 +4830,7 @@ QUnit.module('Views', { assert.doesNotHaveClass(list.$('tr.o_data_row:eq(2)'), 'o_selected_row'); assert.verifySteps([ - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', ]); @@ -4794,7 +4872,7 @@ QUnit.module('Views', { assert.doesNotHaveClass(list.$('tr.o_data_row:eq(2)'), 'o_selected_row'); assert.verifySteps([ - 'read_group', + 'web_read_group', '/web/dataset/search_read', '/web/dataset/search_read', ]); diff --git a/addons/web/static/tests/views/search_view_tests.js b/addons/web/static/tests/views/search_view_tests.js index f7d07f8da9d..5980ab9211b 100644 --- a/addons/web/static/tests/views/search_view_tests.js +++ b/addons/web/static/tests/views/search_view_tests.js @@ -440,7 +440,7 @@ QUnit.module('Search View', { archs: this.archs, data: this.data, mockRPC: function (route, args) { - if (route === '/web/dataset/call_kw/partner/read_group') { + if (route === '/web/dataset/call_kw/partner/web_read_group') { assert.deepEqual(args.kwargs.groupby, groupbys.shift()); } return this._super.apply(this, arguments); diff --git a/addons/web/static/tests/views/view_dialogs_tests.js b/addons/web/static/tests/views/view_dialogs_tests.js index b17112c8978..9dd78f3b724 100644 --- a/addons/web/static/tests/views/view_dialogs_tests.js +++ b/addons/web/static/tests/views/view_dialogs_tests.js @@ -146,22 +146,23 @@ QUnit.module('Views', { '</search>', }, mockRPC: function (route, args) { - if (args.method === 'read_group') { + if (args.method === 'web_read_group') { assert.deepEqual(args.kwargs, { context: {}, - domain: [["display_name","like","a"], "&", ["display_name","ilike","piou"], ["foo","ilike","piou"]], - fields: ["display_name","foo","bar"], + domain: [["display_name", "like", "a"], "&", ["display_name", "ilike", "piou"], ["foo", "ilike", "piou"]], + fields: ["display_name", "foo", "bar"], groupby: ["bar"], orderby: '', - lazy: true + lazy: true, + limit: 80, }, "should search with the complete domain (domain + search), and group by 'bar'"); } if (search === 0 && route === '/web/dataset/search_read') { search++; assert.deepEqual(args, { context: {}, - domain: [["display_name","like","a"], "&", ["display_name","ilike","piou"], ["foo","ilike","piou"]], - fields: ["display_name","foo"], + domain: [["display_name", "like", "a"], "&", ["display_name", "ilike", "piou"], ["foo", "ilike", "piou"]], + fields: ["display_name", "foo"], model: "partner", limit: 80, sort: "" @@ -169,8 +170,8 @@ QUnit.module('Views', { } else if (search === 1 && route === '/web/dataset/search_read') { assert.deepEqual(args, { context: {}, - domain: [["display_name","like","a"]], - fields: ["display_name","foo"], + domain: [["display_name", "like", "a"]], + fields: ["display_name", "foo"], model: "partner", limit: 80, sort: "" |
