diff --git a/addons/mail/static/src/js/discuss_mobile.js b/addons/mail/static/src/js/discuss_mobile.js
index fda74540688..e08aaeee43a 100644
--- a/addons/mail/static/src/js/discuss_mobile.js
+++ b/addons/mail/static/src/js/discuss_mobile.js
@@ -194,13 +194,17 @@ Discuss.include({
// update control panel
self.$buttons.find('button')
- .addClass('o_hidden');
+ .removeClass('d-block')
+ .addClass('d-none');
self.$buttons.find('.o_mail_discuss_button_' + type)
- .removeClass('o_hidden');
+ .removeClass('d-none')
+ .addClass('d-block');
self.$buttons.find('.o_mail_discuss_button_mark_all_read')
- .toggleClass('o_hidden', type !== 'mailbox_inbox');
+ .toggleClass('d-none', type !== 'mailbox_inbox')
+ .toggleClass('d-block', type === 'mailbox_inbox');
self.$buttons.find('.o_mail_discuss_button_unstar_all')
- .toggleClass('o_hidden', type !== 'mailbox_starred');
+ .toggleClass('d-none', type !== 'mailbox_starred')
+ .toggleClass('d-block', type === 'mailbox_starred');
// update Mailbox page buttons
if (inMailbox) {
diff --git a/addons/mail/static/src/xml/discuss.xml b/addons/mail/static/src/xml/discuss.xml
index 5d35ca8b7cd..a09b7a6f754 100644
--- a/addons/mail/static/src/xml/discuss.xml
+++ b/addons/mail/static/src/xml/discuss.xml
@@ -178,7 +178,7 @@
-
+
diff --git a/addons/mail/static/tests/discuss_mobile_tests.js b/addons/mail/static/tests/discuss_mobile_tests.js
index a0b9383ea45..2f0fd5de647 100644
--- a/addons/mail/static/tests/discuss_mobile_tests.js
+++ b/addons/mail/static/tests/discuss_mobile_tests.js
@@ -24,7 +24,7 @@ QUnit.test('mobile basic rendering', function (assert) {
// /mail/client_action route is always called when the test suite is
// launched), and we must wait for this RPC to be done before starting to
// test the interface. This should be refactored to facilitate the testing.
- assert.expect(8);
+ assert.expect(19);
var done = assert.async();
createDiscuss({
@@ -45,14 +45,44 @@ QUnit.test('mobile basic rendering', function (assert) {
"inbox/starred buttons should be visible");
assert.ok(discuss.$('.o_mail_discuss_mobile_mailboxes_buttons .o_mailbox_inbox_item[data-type=mailbox_inbox]').hasClass('btn-primary'),
"should be in inbox");
+ assert.ok($('.o_mail_discuss_button_dm_chat').hasClass('d-none'),
+ "should have invisible button 'New Message'");
+ assert.ok($('.o_mail_discuss_button_public').hasClass('d-none'),
+ "should have invisible button 'New Channel'");
- // move to DMs tab
+ // move to 'Chat' tab
discuss.$('.o_mail_mobile_tab[data-type=dm_chat]').click();
assert.ok(discuss.$('.o_mail_mobile_tab[data-type=dm_chat]').hasClass('active'),
- "should be in DMs chat tab");
+ "should be in 'Chat' tab");
assert.strictEqual(discuss.$('.o_mail_discuss_content .o_mail_no_content').length, 0,
"should display the no content message");
- $('.o_mail_discuss_button_dm').click(); // click to add a channel
+ assert.strictEqual($('.o_mail_discuss_button_dm_chat').length, 1,
+ "should have a button to open DM chat in 'Chat' tab");
+ assert.notOk($('.o_mail_discuss_button_dm_chat').hasClass('d-none'),
+ "should be visible in 'Chat' tab");
+ assert.ok($('.o_mail_discuss_button_public').hasClass('d-none'),
+ "should have invisible button 'New Channel' in 'Chat' tab");
+ $('.o_mail_discuss_button_dm_chat').click(); // click to open a chat
+ assert.strictEqual(discuss.$('.o_mail_add_thread input:visible').length, 1,
+ "should display the input to add a channel");
+
+ // move to 'Channels' tab
+ discuss.$('.o_mail_mobile_tab[data-type=public]').click();
+ assert.ok($('.o_mail_discuss_button_dm_chat').hasClass('d-none'),
+ "should have invisible button 'New Message' in 'Channels' tab");
+ assert.notOk($('.o_mail_discuss_button_public').hasClass('d-none'),
+ "should have visible button 'New Channel' in 'Channels' tab");
+ $('.o_mail_discuss_button_public').click(); // click to open a chat
+ assert.strictEqual(discuss.$('.o_mail_add_thread input:visible').length, 1,
+ "should display the input to add a channel");
+
+ // move to Private Channels tab
+ discuss.$('.o_mail_mobile_tab[data-type=private]').click();
+ assert.ok($('.o_mail_discuss_button_dm_chat').hasClass('d-none'),
+ "should have invisible button 'New Message' in 'Private Channels' tab");
+ assert.notOk($('.o_mail_discuss_button_private').hasClass('d-none'),
+ "should have invisible button 'New Channel' in 'Private Channels' tab");
+ $('.o_mail_discuss_button_private').click(); // click to open a chat
assert.strictEqual(discuss.$('.o_mail_add_thread input:visible').length, 1,
"should display the input to add a channel");
@@ -85,5 +115,4 @@ QUnit.test('on_{attach/detach}_callback', function (assert) {
});
});
-
});