summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/widgets
diff options
context:
space:
mode:
authorKishan Gajjar <kig@odoo.com>2019-01-24 10:29:28 +0000
committerXavier Morel <xmo@odoo.com>2019-08-12 13:38:31 +0000
commit22b598bc1b8331907ba0ce77739b64c48d6fcbbd (patch)
tree527b726ebfccb01fc7677107d3081523faeee031 /addons/web/static/tests/widgets
parentb6193a6b8d569d9d3a9fb4abe1590012782d03c2 (diff)
[IMP] web: export improvements
* remove center buttons, corresponding features either moved to fields list (handle / bin on exported, etc...) or removed entirely (e.g. clear) * replace XLS to XLSX format, increases rows# to 1048579 * add FAYT filtering of available fields * sort available fields alphabetically (CI) always * change export templates UI: remove buttons TaskID: 1910953 closes odoo/odoo#32339 Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Diffstat (limited to 'addons/web/static/tests/widgets')
-rw-r--r--addons/web/static/tests/widgets/data_export_tests.js112
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();
+ });
});
});