diff options
Diffstat (limited to 'addons/web/static/tests/widgets/data_export_tests.js')
| -rw-r--r-- | addons/web/static/tests/widgets/data_export_tests.js | 112 |
1 files changed, 89 insertions, 23 deletions
diff --git a/addons/web/static/tests/widgets/data_export_tests.js b/addons/web/static/tests/widgets/data_export_tests.js index d9453d70405..6d29e8e888d 100644 --- a/addons/web/static/tests/widgets/data_export_tests.js +++ b/addons/web/static/tests/widgets/data_export_tests.js @@ -36,7 +36,7 @@ QUnit.module('widgets', { QUnit.test('exporting all data in list view', async function (assert) { - assert.expect(6); + assert.expect(8); var blockUI = framework.blockUI; var unblockUI = framework.unblockUI; @@ -75,12 +75,12 @@ QUnit.module('widgets', { children: true, }, { children: false, - field_type: 'text', - id: "note", + field_type: 'char', + id: "foo", relation_field: null, required: false, - string: 'Description', - value: "note", + string: 'Foo', + value: "foo", } ]); } @@ -99,15 +99,15 @@ QUnit.module('widgets', { await testUtils.dom.click(list.sidebar.$('a:contains(Export)')); assert.strictEqual($('.modal').length, 1, "a modal dialog should be open"); - assert.strictEqual($('span.o_tree_column:contains(Activities)').length, 1, + assert.strictEqual($('div.o_tree_column:contains(Activities)').length, 1, "the Activities field should be in the list of exportable fields"); + assert.strictEqual($('.modal .o_export_field').length, 1, "There should be only one export field"); + assert.strictEqual($('.modal .o_export_field').data('field_id'), 'foo', "There should be only one export field"); // select the field Description, click on add, then export and close - await testUtils.dom.click($('.modal span:contains(Description)')); - await testUtils.dom.click($('.modal .o_add_field')); - await testUtils.dom.click($('.modal span:contains(Export To File)')); + await testUtils.dom.click($('.modal .o_tree_column:contains(Foo) .o_add_field')); + await testUtils.dom.click($('.modal span:contains(Export)')); await testUtils.dom.click($('.modal span:contains(Close)')); - list.destroy(); framework.blockUI = blockUI; framework.unblockUI = unblockUI; @@ -119,7 +119,7 @@ QUnit.module('widgets', { }); QUnit.test('saving fields list when exporting data', async function (assert) { - assert.expect(5); + assert.expect(4); var create = data.DataSet.prototype.create; @@ -154,7 +154,15 @@ QUnit.module('widgets', { params: {"model": "mail.activity", "prefix": "activity_ids", "name": "Activities"}, relation_field: "res_id", children: true, - }, + }, { + children: false, + field_type: 'char', + id: "foo", + relation_field: null, + required: false, + string: 'Foo', + value: "foo", + } ]); } return this._super.apply(this, arguments); @@ -169,17 +177,14 @@ QUnit.module('widgets', { "a modal dialog should be open"); // Select 'Activities' in fields to export - assert.strictEqual($('.modal select.o_fields_list option').length, 0, - "the fields list should be empty"); - await testUtils.dom.click($('.modal .o_export_tree_item:contains(Activities)')); - await testUtils.dom.click($('.modal button:contains(Add)')); - assert.strictEqual($('.modal select.o_fields_list option').length, 1, - "there should be one item in the fields list"); - - // Save fields list - await testUtils.dom.click($('.modal a:contains(Save fields list)')); - await testUtils.fields.editInput($('.modal .o_save_list > input'), 'fields list'); - await testUtils.dom.click($('.modal .o_save_list > button')); + await testUtils.dom.click($('.modal .o_export_tree_item:contains(Activities) .o_add_field')); + assert.strictEqual($('.modal .o_fields_list .o_export_field').length, 2, + "there should be two items in the fields list"); + // Save as template + await testUtils.fields.editAndTrigger($('.modal .o_exported_lists_select'), 'new_template', ['change']); + await testUtils.fields.editInput($('.modal .o_save_list .o_save_list_name'), 'fields list'); + await testUtils.dom.click($('.modal .o_save_list .o_save_list_btn')); + assert.verifySteps(['create'], "create should have been called"); @@ -191,6 +196,67 @@ QUnit.module('widgets', { data.DataSet.prototype.create = create; }); + QUnit.test('Export dialog UI test', async function (assert) { + assert.expect(4); + var list = await createView({ + View: ListView, + model: 'partner', + data: this.data, + arch: '<tree><field name="foo"/></tree>', + viewOptions: { + hasSidebar: true, + }, + mockRPC: function (route) { + if (route === '/web/export/formats') { + return Promise.resolve([ + {tag: 'csv', label: 'CSV' }, + {tag: 'xls', label: 'Excel' }, + ]); + } + if (route === '/web/export/get_fields') { + return Promise.resolve([ + { + field_type: "one2many", + string: "Activities", + required: false, + value: "activity_ids/id", + id: "activity_ids", + params: {"model": "mail.activity", "prefix": "activity_ids", "name": "Activities" }, + relation_field: "res_id", + children: true, + }, { + children: false, + field_type: 'char', + id: "foo", + relation_field: null, + required: false, + string: 'Foo', + value: "foo", + } + ]); + } + return this._super.apply(this, arguments); + }, + }); + // Open the export modal + await testUtils.dom.click(list.$('.o_data_row .o_list_record_selector input')); + await testUtils.dom.click(list.sidebar.$('.o_dropdown_toggler_btn:contains(Action)')); + await testUtils.dom.click(list.sidebar.$('a:contains(Export)')); + + assert.strictEqual($('.modal .o_export_tree_item:visible').length, 2, "There should be only two items visible"); + await testUtils.dom.click($('.modal .o_export_search_input')); + $('.modal .o_export_search_input').val('Activities').trigger($.Event('input', { + keyCode: 65, + })); + assert.strictEqual($('.modal .o_export_tree_item:visible').length, 1, "Only match item visible"); + // Add field + await testUtils.dom.click($('.modal div:contains(Activities) .o_add_field')); + assert.strictEqual($('.modal .o_fields_list li').length, 2, "There should be two fields in export field list."); + // Remove field + await testUtils.dom.click($('.modal .o_fields_list li:first .o_remove_field')); + assert.strictEqual($('.modal .o_fields_list li').length, 1, "There should be only one field in list"); + list.destroy(); + }); }); }); |
