diff --git a/e2e/core/login/login-sso/login-sso.e2e.ts b/e2e/core/login/login-sso/login-sso.e2e.ts index 15430b5865..5d7a3a7466 100644 --- a/e2e/core/login/login-sso/login-sso.e2e.ts +++ b/e2e/core/login/login-sso/login-sso.e2e.ts @@ -20,14 +20,17 @@ import { SettingsPage } from '../../../pages/adf/settingsPage'; import TestConfig = require('../../../test.config'); import { browser } from 'protractor'; import { NavigationBarPage } from '../../../pages/adf/navigationBarPage'; +import { LoginPage } from '../../../pages/adf/loginPage'; describe('Login component - SSO', () => { const settingsPage = new SettingsPage(); const loginApsPage = new LoginSSOPage(); + const loginPage = new LoginPage(); const navigationBarPage = new NavigationBarPage(); + let silentLogin, implicitFlow; - describe('Login component - SSO', () => { + describe('Login component - SSO implicit Flow', () => { afterEach(() => { navigationBarPage.clickLogoutButton(); @@ -38,18 +41,16 @@ describe('Login component - SSO', () => { it('[C261050] Should be possible login with SSO', () => { settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, false, true, 'alfresco'); loginApsPage.clickOnSSOButton(); - browser.ignoreSynchronization = true; loginApsPage.loginSSOIdentityService(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); }); it('[C280667] Should be redirect directly to keycloak without show the login page with silent login', () => { settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, true, true, 'alfresco'); - browser.ignoreSynchronization = true; loginApsPage.loginSSOIdentityService(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); }); }); - describe('SSO Login Error for login componentO', () => { + describe('SSO Login Error for login component', () => { it('[C299205] Should display the login error message when the SSO identity service is wrongly configured', () => { settingsPage.setProviderEcmSso(TestConfig.adf.url, 'http://aps22/auth/realms/alfresco', TestConfig.adf.hostIdentity, false, true, 'alfresco'); @@ -59,4 +60,35 @@ describe('Login component - SSO', () => { }); }); + describe('Login component - SSO Grant type password (implicit flow false)', () => { + + it('[C299158] Should be possible to login with SSO, with grant type password (Implicit Flow false)', () => { + implicitFlow = false; + settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, silentLogin, implicitFlow, 'alfresco'); + + loginPage.waitForElements(); + + settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, silentLogin, implicitFlow, 'alfresco'); + browser.ignoreSynchronization = true; + + loginPage.enterUsername(TestConfig.adf.adminEmail); + loginPage.enterPassword(TestConfig.adf.adminPassword); + loginPage.clickSignInButton(); + + let isDisplayed = false; + + browser.wait(() => { + loginPage.header.isDisplayed().then( + () => { + isDisplayed = true; + }, + () => { + isDisplayed = false; + } + ); + return isDisplayed; + }, TestConfig.main.timeout, 'Element is not visible ' + loginPage.header.locator()); + }); + }); + }); diff --git a/e2e/test.config.js b/e2e/test.config.js index 1cd3375b8d..02234ee24d 100644 --- a/e2e/test.config.js +++ b/e2e/test.config.js @@ -60,7 +60,6 @@ module.exports = { }(), hostIdentity: function () { - console.log((PROXY + '/auth')); return "http://" + (HOST_IDENTITY ? HOST_IDENTITY : (PROXY + '/auth/admin/realms/alfresco')); }() diff --git a/lib/core/login/components/login.component.ts b/lib/core/login/components/login.component.ts index f1ff243016..9b88b602a0 100644 --- a/lib/core/login/components/login.component.ts +++ b/lib/core/login/components/login.component.ts @@ -188,7 +188,7 @@ export class LoginComponent implements OnInit { onSubmit(values: any) { this.disableError(); - if (this.authService.isOauth() && this.authService.isSSODiscoveryConfigured()) { + if (this.authService.isOauth() && !this.authService.isSSODiscoveryConfigured()) { this.errorMsg = 'LOGIN.MESSAGES.SSO-WRONG-CONFIGURATION'; this.isError = true; } else { diff --git a/lib/testing/src/lib/process-services-cloud/pages/login-sso.page.ts b/lib/testing/src/lib/process-services-cloud/pages/login-sso.page.ts index 14487683bb..3d8404f4ec 100644 --- a/lib/testing/src/lib/process-services-cloud/pages/login-sso.page.ts +++ b/lib/testing/src/lib/process-services-cloud/pages/login-sso.page.ts @@ -27,6 +27,7 @@ export class LoginSSOPage { loginError = element(by.css(`div[data-automation-id="login-error"]`)); loginSSOIdentityService(username, password) { + browser.ignoreSynchronization = true; BrowserVisibility.waitUntilElementIsVisible(this.usernameField); this.enterUsername(username); this.enterPassword(password); diff --git a/protractor.conf.js b/protractor.conf.js index 6d94e0fdb9..378e8154f4 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -35,9 +35,9 @@ if (process.env.NAME_TEST) { let args_options = []; if (BROWSER_RUN === 'true') { - args_options = ['--incognito', '--window-size=1366,768', '--disable-gpu']; + args_options = ['--incognito', '--window-size=1366,768', '--disable-gpu', '--disable-web-security']; } else { - args_options = ['--incognito', '--headless', '--window-size=1366,768', '--disable-gpu']; + args_options = ['--incognito', '--headless', '--window-size=1366,768', '--disable-gpu', '--disable-web-security']; } let downloadFolder = path.join(__dirname, 'e2e/downloads'); @@ -94,7 +94,7 @@ saveScreenshots = async function (alfrescoJsApi, retryCount) { 'autoRename': true } ); - }catch(error){ + } catch (error) { console.log(error); } }