[FIX] auth_totp, auth_totp_mail: fix misplaced test of 2FA invite button

Since mail dependancy has been extracted into a bridge module auth_totp_mail,
the test about "Invite to use 2FA" is misplaced in the wrong module.

This commit moves the test on 2FA invite button to the bridge module and fixes
the test on auth_totp module to use another indicator that 2FA has been disabled
for the currently tested user (see test file).

Task-2645206
Parent Task-2638538
COM PR: odoo/odoo#76381

closes odoo/odoo#76579

X-original-commit: 305f94bf1b7ac7c106e05e60601640feca934005
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
David Beguin
2021-09-15 15:22:44 +00:00
parent 2fda34d9f6
commit 97ed053b31
5 changed files with 115 additions and 2 deletions
+1 -1
View File
@@ -303,6 +303,6 @@ trigger: 'div:contains("enter your password")',
trigger: "a.nav-link:contains(Account Security)",
}, {
content: "check that demo user has been de-totp'd",
trigger: "button:contains(Invite to use 2FA)",
trigger: "button[name=action_totp_enable_wizard]",
}])
});
+5 -1
View File
@@ -16,6 +16,10 @@ by sending an email to the target user. This email redirect him to :
'data/mail_template_data.xml',
'views/res_users_views.xml',
],
'assets': {},
'assets': {
'web.assets_tests': [
'auth_totp_mail/static/tests/**/*',
],
},
'license': 'LGPL-3',
}
@@ -0,0 +1,92 @@
odoo.define('auth_totp_mail.tours', function(require) {
"use strict";
const tour = require('web_tour.tour');
function openUserProfileAtSecurityTab() {
return [{
content: 'Open user account menu',
trigger: '.o_user_menu .oe_topbar_name',
run: 'click',
}, {
content: "Open preferences / profile screen",
trigger: '[data-menu=settings]',
run: 'click',
}, {
content: "Switch to security tab",
trigger: 'a[role=tab]:contains("Account Security")',
run: 'click',
}];
}
function openAccountSettingsTab() {
return [{
content: 'Go to settings',
trigger: '[data-menu-xmlid="base.menu_administration"]'
}, {
content: 'Wait for page',
trigger: '.o_menu_brand:contains("Settings")',
run: () => {}
}, {
content: "Open Users menu",
trigger: '[data-menu-xmlid="base.menu_users"]'
}, {
content: "Open Users view",
trigger: '[data-menu-xmlid="base.menu_action_res_users"]',
run: function (helpers) {
// funny story: the users view we're trying to reach, sometimes we're
// already there, but if we re-click the next step executes before the
// action has the time to re-load, the one after that doesn't, and our
// selection get discarded by the action reloading, so here try to
// see if we're already on the users action through the breadcrumb and
// just close the menu if so
const $crumb = $('.breadcrumb');
if ($crumb.text().indexOf('Users') === -1) {
// on general settings page, click menu
helpers.click();
} else {
// else close menu
helpers.click($('[data-menu-xmlid="base.menu_users"]'));
}
}
}];
}
tour.register('totp_admin_self_invite', {
test: true,
url: '/web'
}, [tour.stepUtils.showAppsMenuItem(), ...openAccountSettingsTab(), {
content: "open the user's form",
trigger: "td.o_data_cell:contains(admin)",
}, {
content: "go to Account security Tab",
trigger: "a.nav-link:contains(Account Security)",
}, {
content: "check that user cannot invite himself to use 2FA.",
trigger: "body",
run: function () {
var $inviteBtn = $('button:contains(Invite to use 2FA)');
if ($inviteBtn.hasClass('o_invisible_modifier')) {
$('body').addClass('CannotInviteYourself');
}
}
}, {
content: "check that user cannot invite themself.",
trigger: "body.CannotInviteYourself"
}]);
tour.register('totp_admin_invite', {
test: true,
url: '/web'
}, [tour.stepUtils.showAppsMenuItem(), ...openAccountSettingsTab(), {
content: "open the user's form",
trigger: "td.o_data_cell:contains(demo)",
}, {
content: "go to Account security Tab",
trigger: "a.nav-link:contains(Account Security)",
}, {
content: "check that demo user can be invited to use 2FA.",
trigger: "button:contains(Invite to use 2FA)",
}]);
});
+4
View File
@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import test_totp
+13
View File
@@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests import tagged
from odoo.addons.auth_totp.tests.test_totp import TestTOTP
@tagged('post_install', '-at_install')
class TestTOTPInvite(TestTOTP):
def test_totp_administration(self):
self.start_tour('/web', 'totp_admin_invite', login='admin')
self.start_tour('/web', 'totp_admin_self_invite', login='admin')