summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/widgets/data_export_tests.js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-08-24 13:17:53 +0200
committerChristophe Simonis <chs@odoo.com>2017-08-24 13:17:53 +0200
commit017ee5eab376b4f09beb62812c1cbc682009ed86 (patch)
tree2af185b0604cd8ce9129c39137bbf39d21d7be89 /addons/web/static/tests/widgets/data_export_tests.js
parent006c16198f7f68c9dc8b895defd013f33008840a (diff)
parent877e7098719195ed2934fc9c3b5c3bd8ad8bab07 (diff)
[MERGE] forward port branch saas-17 up to 877e7098719
Diffstat (limited to 'addons/web/static/tests/widgets/data_export_tests.js')
-rw-r--r--addons/web/static/tests/widgets/data_export_tests.js84
1 files changed, 84 insertions, 0 deletions
diff --git a/addons/web/static/tests/widgets/data_export_tests.js b/addons/web/static/tests/widgets/data_export_tests.js
index 83169a64e1f..d251e3dea15 100644
--- a/addons/web/static/tests/widgets/data_export_tests.js
+++ b/addons/web/static/tests/widgets/data_export_tests.js
@@ -4,6 +4,7 @@ odoo.define('web.data_export_tests', function (require) {
var framework = require('web.framework');
var ListView = require('web.ListView');
var testUtils = require('web.test_utils');
+var data = require('web.data');
var createView = testUtils.createView;
@@ -127,6 +128,89 @@ QUnit.module('widgets', {
]);
});
+ QUnit.test('saving fields list when exporting data', function (assert) {
+ assert.expect(6);
+
+ var create = data.DataSet.prototype.create;
+
+ data.DataSet.prototype.create = function (data, options) {
+ assert.step('create');
+ return $.when([]);
+ };
+
+ var list = createView({
+ View: ListView,
+ model: 'partner',
+ data: this.data,
+ arch: '<tree><field name="foo"/></tree>',
+ viewOptions: {
+ sidebar: true,
+ },
+ mockRPC: function (route) {
+ if (route === '/web/export/formats') {
+ return $.when([
+ {tag: 'csv', label: 'CSV'},
+ {tag: 'xls', label: 'Excel'},
+ ]);
+ }
+ if (route === '/web/export/get_fields') {
+ return $.when([
+ {
+ 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,
+ },
+ ]);
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+
+ list.getParent().searchview = {
+ build_search_data: function () {
+ assert.step('build_search_data');
+ return {
+ contexts: [],
+ domains: [],
+ groupbys: [],
+ };
+ },
+ };
+
+ // Open the export modal
+ list.$('thead th.o_list_record_selector input').click();
+ list.sidebar.$('a:contains(Export)').click();
+ assert.strictEqual($('.modal').length, 1,
+ "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");
+ $('.modal .o_export_tree_item:contains(Activities)').click();
+ $('.modal button:contains(Add)').click();
+ assert.strictEqual($('.modal select.o_fields_list option').length, 1,
+ "there should be one item in the fields list");
+
+ // Save fields list
+ $('.modal a:contains(Save fields list)').click();
+ $('.modal .o_save_list > input').val('fields list').trigger('input');
+ $('.modal .o_save_list > button').click();
+ assert.verifySteps(['build_search_data', 'create'],
+ "create should have been called");
+
+ // Close the modal and destroy list
+ $('.modal button span:contains(Close)').click();
+ list.destroy();
+
+ // restore create function
+ data.DataSet.prototype.create = create;
+ });
+
});
});