summaryrefslogtreecommitdiff
path: root/addons/mail
diff options
context:
space:
mode:
authorAaron Bohy <aab@odoo.com>2020-06-05 09:18:14 +0000
committerAaron Bohy <aab@odoo.com>2020-06-12 09:47:48 +0000
commitb4ba0fc34082deec8ca6c871ce7a203c0a3a61a4 (patch)
tree27451423f32b218e699d3135c398d338b249c5cd /addons/mail
parentdc260c324170a90fa737cd21dd528e39d658d9b6 (diff)
[FIX] *: adapt tests to env rework
This commit adapts tests following recent changes on the helpers. The main change is that addMockEnvironment (and all functions using it) are now async, as they need to wait for services to be started.
Diffstat (limited to 'addons/mail')
-rw-r--r--addons/mail/static/tests/document_thread_window_tests.js66
-rw-r--r--addons/mail/static/tests/document_viewer_tests.js4
-rw-r--r--addons/mail/static/tests/mail_status_manager_tests.js10
-rw-r--r--addons/mail/static/tests/models/cc_throttle_function_tests.js8
-rw-r--r--addons/mail/static/tests/systray/systray_activity_menu_tests.js6
-rw-r--r--addons/mail/static/tests/thread_window/basic_thread_window_tests.js30
-rw-r--r--addons/mail/static/tests/thread_window/blank_thread_window_tests.js14
-rw-r--r--addons/mail/static/tests/thread_window/hidden_thread_window_tests.js10
-rw-r--r--addons/mail/static/tests/thread_window/moderation_thread_window_tests.js6
-rw-r--r--addons/mail/static/tests/thread_window/typing_thread_window_tests.js6
-rw-r--r--addons/mail/static/tests/tools/debug_manager_tests.js2
11 files changed, 86 insertions, 76 deletions
diff --git a/addons/mail/static/tests/document_thread_window_tests.js b/addons/mail/static/tests/document_thread_window_tests.js
index f01ab0925f2..c4a84040433 100644
--- a/addons/mail/static/tests/document_thread_window_tests.js
+++ b/addons/mail/static/tests/document_thread_window_tests.js
@@ -1,6 +1,8 @@
odoo.define('mail.documentThreadWindowTests', function (require) {
"use strict";
+const Bus = require('web.Bus');
+const LocalStorageService = require('web.LocalStorageService');
var mailTestUtils = require('mail.testUtils');
var MessagingMenu = require('mail.systray.MessagingMenu');
@@ -128,20 +130,23 @@ QUnit.test('open a document thread in a thread window', async function (assert)
QUnit.test('expand a document thread window', async function (assert) {
assert.expect(4);
+ const bus = new Bus();
+ bus.on('do-action', null, function (payload) {
+ assert.deepEqual(payload.action, {
+ res_id: 1,
+ res_model: 'some.res.model',
+ type: 'ir.actions.act_window',
+ views: [[false, 'form']],
+ }, "should open the document in form view");
+ });
+
var messagingMenu = new MessagingMenu();
await testUtils.mock.addMockEnvironment(messagingMenu, {
services: this.services,
data: this.data,
session: this.session,
- intercepts: {
- do_action: function (ev) {
- assert.deepEqual(ev.data.action, {
- res_id: 1,
- res_model: 'some.res.model',
- type: 'ir.actions.act_window',
- views: [[false, 'form']],
- }, "should open the document in form view");
- },
+ env: {
+ bus
},
});
await messagingMenu.appendTo($('#qunit-fixture'));
@@ -177,8 +182,18 @@ QUnit.test('post messages in a document thread window', async function (assert)
res_id: 1,
};
var messagingMenu = new MessagingMenu();
+ const MockedLocalStorageService = LocalStorageService.extend({
+ setItem(key, value) {
+ if (key === 'mail.document_threads_last_message') {
+ assert.deepEqual(value.messageData, newMessage,
+ "should write sent message in local storage, to share info with other tabs");
+ }
+ },
+ });
await testUtils.mock.addMockEnvironment(messagingMenu, {
- services: this.services,
+ services: Object.assign(this.services, {
+ local_storage: MockedLocalStorageService,
+ }),
data: this.data,
session: this.session,
mockRPC: function (route, args) {
@@ -198,13 +213,7 @@ QUnit.test('post messages in a document thread window', async function (assert)
return this._super.apply(this, arguments);
},
});
- testUtils.mock.intercept(messagingMenu, 'call_service', function (ev) {
- if (ev.data.service === 'local_storage' && ev.data.method === 'setItem' &&
- ev.data.args[0] === 'mail.document_threads_last_message') {
- assert.deepEqual(ev.data.args[1].messageData, newMessage,
- "should write sent message in local storage, to share info with other tabs");
- }
- }, true);
+
await messagingMenu.appendTo($('#qunit-fixture'));
// toggle the messaging menu and open the documentThread
@@ -229,24 +238,25 @@ QUnit.test('post messages in a document thread window', async function (assert)
QUnit.test('open, fold, unfold and close a document thread window', async function (assert) {
assert.expect(20);
var messagingMenu = new MessagingMenu();
- await testUtils.mock.addMockEnvironment(messagingMenu, {
- services: this.services,
- data: this.data,
- session: this.session,
- });
- await testUtils.nextTick();
- testUtils.mock.intercept(messagingMenu, 'call_service', function (ev) {
- if (ev.data.service === 'local_storage' && ev.data.method === 'setItem') {
- const key = ev.data.args[0];
+ const MockedLocalStorageService = LocalStorageService.extend({
+ setItem(key, value) {
if (key === 'mail.document_threads_state/some.res.model_1') {
- const state = ev.data.args[1].state;
+ const state = value.state;
assert.ok(state);
assert.ok(state.name);
assert.ok(state.windowState);
assert.step(`${key}: { name: "${state.name}", windowState: '${state.windowState}' }`);
}
}
- }, true);
+ });
+ await testUtils.mock.addMockEnvironment(messagingMenu, {
+ services: Object.assign(this.services, {
+ local_storage: MockedLocalStorageService,
+ }),
+ data: this.data,
+ session: this.session,
+ });
+ await testUtils.nextTick();
await messagingMenu.appendTo($('#qunit-fixture'));
// toggle the messaging menu and open the documentThread
diff --git a/addons/mail/static/tests/document_viewer_tests.js b/addons/mail/static/tests/document_viewer_tests.js
index aa50483b48a..ca6b433d519 100644
--- a/addons/mail/static/tests/document_viewer_tests.js
+++ b/addons/mail/static/tests/document_viewer_tests.js
@@ -14,7 +14,7 @@ var Widget = require('web.Widget');
* @param {boolean} [params.debug]
* @returns {DocumentViewer}
*/
-var createViewer = function (params) {
+var createViewer = async function (params) {
var parent = new Widget();
var viewer = new DocumentViewer(parent, params.attachments, params.attachmentID);
@@ -32,7 +32,7 @@ var createViewer = function (params) {
return Promise.resolve();
}
};
- testUtils.mock.addMockEnvironment(parent, {
+ await testUtils.mock.addMockEnvironment(parent, {
mockRPC: function () {
if (params.mockRPC) {
var _super = this._super;
diff --git a/addons/mail/static/tests/mail_status_manager_tests.js b/addons/mail/static/tests/mail_status_manager_tests.js
index f21cefdec9e..891cf3aaa68 100644
--- a/addons/mail/static/tests/mail_status_manager_tests.js
+++ b/addons/mail/static/tests/mail_status_manager_tests.js
@@ -17,9 +17,9 @@ QUnit.module('Status manager', {
this.timeoutMock = mailTestUtils.patchMailTimeouts();
},
});
-QUnit.test('simple set im_status', function (assert) {
+QUnit.test('simple set im_status', async function (assert) {
assert.expect(1);
- var parent = testUtils.createParent({
+ var parent = await testUtils.createParent({
services: this.services,
mockRPC: function (route, args) {
if (route === '/mail/init_messaging') {
@@ -41,7 +41,7 @@ QUnit.test('simple set im_status', function (assert) {
QUnit.test('multi get_im_status', async function (assert) {
assert.expect(8);
var readCount = 0;
- var parent = testUtils.createParent({
+ var parent = await testUtils.createParent({
//data: this.data,
services: this.services,
mockRPC: function (route, args) {
@@ -86,7 +86,7 @@ QUnit.test('multi get_im_status', async function (assert) {
QUnit.test('update loop', async function (assert) {
assert.expect(10);
var readCount = 0;
- var parent = testUtils.createParent({
+ var parent = await testUtils.createParent({
services: this.services,
mockRPC: function (route, args) {
if (route === '/mail/init_messaging') {
@@ -162,7 +162,7 @@ QUnit.test('update status', async function (assert) {
}
});
var statusWidget = new StatusWidget();
- testUtils.mock.addMockEnvironment(statusWidget, {
+ await testUtils.mock.addMockEnvironment(statusWidget, {
services: this.services,
mockRPC: function (route, args) {
if (route === '/mail/init_messaging') {
diff --git a/addons/mail/static/tests/models/cc_throttle_function_tests.js b/addons/mail/static/tests/models/cc_throttle_function_tests.js
index 5ab00ef6048..f760675b1f3 100644
--- a/addons/mail/static/tests/models/cc_throttle_function_tests.js
+++ b/addons/mail/static/tests/models/cc_throttle_function_tests.js
@@ -31,7 +31,7 @@ QUnit.module('mail', {
QUnit.module('model', {}, function () {
QUnit.module('CC Throttle Function');
-QUnit.test('cancel()', function (assert) {
+QUnit.test('cancel()', async function (assert) {
var done = assert.async();
assert.expect(3);
@@ -39,7 +39,7 @@ QUnit.test('cancel()', function (assert) {
var def = testUtils.makeTestPromise();
var step = 1;
- var widget = testUtils.createParent({
+ var widget = await testUtils.createParent({
mockRPC: function (route, args) {
if (args.method === '__rpc__') {
assert.step(args.method + args.args[0]);
@@ -87,7 +87,7 @@ QUnit.test('cancel()', function (assert) {
});
});
-QUnit.test('clear()', function (assert) {
+QUnit.test('clear()', async function (assert) {
var done = assert.async();
assert.expect(5);
@@ -96,7 +96,7 @@ QUnit.test('clear()', function (assert) {
var def2 = testUtils.makeTestPromise();
var step = 1;
- var widget = testUtils.createParent({
+ var widget = await testUtils.createParent({
mockRPC: function (route, args) {
if (args.method === '__rpc__') {
assert.step(args.method + args.args[0]);
diff --git a/addons/mail/static/tests/systray/systray_activity_menu_tests.js b/addons/mail/static/tests/systray/systray_activity_menu_tests.js
index 1cedca2b9c1..23f3500001b 100644
--- a/addons/mail/static/tests/systray/systray_activity_menu_tests.js
+++ b/addons/mail/static/tests/systray/systray_activity_menu_tests.js
@@ -83,7 +83,7 @@ QUnit.test('activity menu widget: menu with no records', async function (assert)
assert.expect(1);
var activityMenu = new ActivityMenu();
- testUtils.mock.addMockEnvironment(activityMenu, {
+ await testUtils.mock.addMockEnvironment(activityMenu, {
services: this.services,
mockRPC: function (route, args) {
if (args.method === 'systray_get_activities') {
@@ -102,7 +102,7 @@ QUnit.test('activity menu widget: activity menu with 3 records', async function
assert.expect(10);
var self = this;
var activityMenu = new ActivityMenu();
- testUtils.mock.addMockEnvironment(activityMenu, {
+ await testUtils.mock.addMockEnvironment(activityMenu, {
services: this.services,
mockRPC: function (route, args) {
if (args.method === 'systray_get_activities') {
@@ -163,7 +163,7 @@ QUnit.test('activity menu widget: activity view icon', async function (assert) {
assert.expect(12);
var self = this;
var activityMenu = new ActivityMenu();
- testUtils.mock.addMockEnvironment(activityMenu, {
+ await testUtils.mock.addMockEnvironment(activityMenu, {
services: this.services,
session: this.session,
mockRPC: function (route, args) {
diff --git a/addons/mail/static/tests/thread_window/basic_thread_window_tests.js b/addons/mail/static/tests/thread_window/basic_thread_window_tests.js
index 87e3c536998..61414d2aeaa 100644
--- a/addons/mail/static/tests/thread_window/basic_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/basic_thread_window_tests.js
@@ -56,7 +56,7 @@ QUnit.module('Basic', {
this.services = mailTestUtils.getMailServices();
this.ORIGINAL_THREAD_WINDOW_APPENDTO = this.services.mail_service.prototype.THREAD_WINDOW_APPENDTO;
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -68,7 +68,7 @@ QUnit.module('Basic', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
},
@@ -81,7 +81,7 @@ QUnit.module('Basic', {
QUnit.test('basic rendering thread window', async function (assert) {
assert.expect(10);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -128,7 +128,7 @@ QUnit.test('basic rendering thread window', async function (assert) {
QUnit.test('close thread window using ESCAPE key', async function (assert) {
assert.expect(5);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
mockRPC: function (route, args) {
@@ -169,7 +169,7 @@ QUnit.test('close thread window using ESCAPE key', async function (assert) {
QUnit.test('thread window\'s input can still be focused when the UI is blocked', async function (assert) {
assert.expect(2);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -205,7 +205,7 @@ QUnit.test('thread window\'s input can still be focused when the UI is blocked',
QUnit.test('emoji popover should open correctly in thread windows', async function (assert) {
assert.expect(1);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -227,7 +227,7 @@ QUnit.test('emoji popover should open correctly in thread windows', async functi
QUnit.test('do not increase unread counter when receiving message with myself as author', async function (assert) {
assert.expect(4);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 }
@@ -274,7 +274,7 @@ QUnit.test('do not increment unread counter with focus on thread window', async
// order to set the focus on it.
assert.expect(2);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 }
@@ -322,7 +322,7 @@ QUnit.test('do not mark as read the newly open thread window from received messa
message_unread_counter: 0,
}];
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 },
@@ -393,7 +393,7 @@ QUnit.test('show document link of message linked to a document', async function
channel_type: "public",
});
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 },
@@ -510,7 +510,7 @@ QUnit.test('do not auto-focus chat window on receiving new message from new DM',
state: 'open',
}];
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 },
@@ -600,7 +600,7 @@ QUnit.test('no out-of-office status in thread window', async function (assert) {
}],
},
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -650,7 +650,7 @@ QUnit.test('receive 2 new DM messages in quick succession (no chat window initia
}],
};
- const parent = this.createParent({
+ const parent = await this.createParent({
data: this.data,
mockRPC(route, args) {
if (args.method === 'channel_minimize') {
@@ -740,7 +740,7 @@ QUnit.test('non-deletable message attachments', async function (assert) {
record_name: "general",
res_id: 1,
}];
- const parent = this.createParent({
+ const parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -781,7 +781,7 @@ QUnit.test('join channel from click channel mention', async function (assert) {
channel_ids: [1],
});
- const parent = this.createParent({
+ const parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 },
diff --git a/addons/mail/static/tests/thread_window/blank_thread_window_tests.js b/addons/mail/static/tests/thread_window/blank_thread_window_tests.js
index 4a24a80d4c3..2d295144b62 100644
--- a/addons/mail/static/tests/thread_window/blank_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/blank_thread_window_tests.js
@@ -32,7 +32,7 @@ QUnit.module('Blank', {
this.services = mailTestUtils.getMailServices();
this.ORIGINAL_THREAD_WINDOW_APPENDTO = this.services.mail_service.prototype.THREAD_WINDOW_APPENDTO;
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -44,7 +44,7 @@ QUnit.module('Blank', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
@@ -90,7 +90,7 @@ QUnit.module('Blank', {
QUnit.test('basic rendering blank thread window', async function (assert) {
assert.expect(5);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -117,7 +117,7 @@ QUnit.test('basic rendering blank thread window', async function (assert) {
QUnit.test('close blank thread window', async function (assert) {
assert.expect(1);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -139,7 +139,7 @@ QUnit.test('fold blank thread window', async function (assert) {
// (e.g. 400px)
assert.expect(3);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -191,7 +191,7 @@ QUnit.test('open new DM chat from blank thread window', async function (assert)
records: [],
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
mockRPC: function (route, args) {
@@ -274,7 +274,7 @@ QUnit.test('open already detached DM chat from blank thread window', async funct
name: 'DemoUser1',
}];
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
mockRPC: function (route, args) {
diff --git a/addons/mail/static/tests/thread_window/hidden_thread_window_tests.js b/addons/mail/static/tests/thread_window/hidden_thread_window_tests.js
index 078230e276a..36da266128c 100644
--- a/addons/mail/static/tests/thread_window/hidden_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/hidden_thread_window_tests.js
@@ -31,7 +31,7 @@ QUnit.module('Hidden', {
this.services = mailTestUtils.getMailServices();
this.ORIGINAL_THREAD_WINDOW_APPENDTO = this.services.mail_service.prototype.THREAD_WINDOW_APPENDTO;
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -43,7 +43,7 @@ QUnit.module('Hidden', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
},
@@ -86,7 +86,7 @@ QUnit.test('hidden thread windows dropdown when not enough horizontal space (ver
},
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -172,7 +172,7 @@ QUnit.test('hidden thread windows dropdown when not enough horizontal space (ver
},
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -266,7 +266,7 @@ QUnit.test('receive message from hidden thread window', async function (assert)
},
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
diff --git a/addons/mail/static/tests/thread_window/moderation_thread_window_tests.js b/addons/mail/static/tests/thread_window/moderation_thread_window_tests.js
index 732a5fe7938..db2561fd048 100644
--- a/addons/mail/static/tests/thread_window/moderation_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/moderation_thread_window_tests.js
@@ -62,7 +62,7 @@ QUnit.module('Moderation', {
this.services = mailTestUtils.getMailServices();
this.ORIGINAL_THREAD_WINDOW_APPENDTO = this.services.mail_service.prototype.THREAD_WINDOW_APPENDTO;
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -74,7 +74,7 @@ QUnit.module('Moderation', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
},
@@ -110,7 +110,7 @@ QUnit.test('moderator: moderated channel with pending moderation message', async
res_id: 1,
}];
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
diff --git a/addons/mail/static/tests/thread_window/typing_thread_window_tests.js b/addons/mail/static/tests/thread_window/typing_thread_window_tests.js
index be2bd4beec8..53960dc283d 100644
--- a/addons/mail/static/tests/thread_window/typing_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/typing_thread_window_tests.js
@@ -51,7 +51,7 @@ QUnit.module('Typing', {
await testUtils.nextMicrotaskTick();
};
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -63,7 +63,7 @@ QUnit.module('Typing', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
},
@@ -76,7 +76,7 @@ QUnit.module('Typing', {
QUnit.test('receive typing notification', async function (assert) {
assert.expect(4);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
mockRPC: function (route, args) {
diff --git a/addons/mail/static/tests/tools/debug_manager_tests.js b/addons/mail/static/tests/tools/debug_manager_tests.js
index c21d36572b9..151b89024b6 100644
--- a/addons/mail/static/tests/tools/debug_manager_tests.js
+++ b/addons/mail/static/tests/tools/debug_manager_tests.js
@@ -10,7 +10,7 @@ QUnit.module('Mail DebugManager', {}, function () {
QUnit.test("Manage Messages", async function (assert) {
assert.expect(3);
- var debugManager = createDebugManager({
+ var debugManager = await createDebugManager({
intercepts: {
do_action: function (event) {
assert.deepEqual(event.data.action, {