[ADF-4195] Automation tests for SSO login with implicitFlow false (#4410)

* [ADF-4195] Automation tests for SSO login with implicitFlow false

* rebase

* fix test sso implicit flow false

* lint fix

* fix test
This commit is contained in:
Marouan Bentaleb 2019-03-19 15:00:27 +00:00 committed by Eugenio Romano
parent a04077679c
commit 355971e0ad
5 changed files with 41 additions and 9 deletions

View File

@ -20,14 +20,17 @@ import { SettingsPage } from '../../../pages/adf/settingsPage';
import TestConfig = require('../../../test.config'); import TestConfig = require('../../../test.config');
import { browser } from 'protractor'; import { browser } from 'protractor';
import { NavigationBarPage } from '../../../pages/adf/navigationBarPage'; import { NavigationBarPage } from '../../../pages/adf/navigationBarPage';
import { LoginPage } from '../../../pages/adf/loginPage';
describe('Login component - SSO', () => { describe('Login component - SSO', () => {
const settingsPage = new SettingsPage(); const settingsPage = new SettingsPage();
const loginApsPage = new LoginSSOPage(); const loginApsPage = new LoginSSOPage();
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
let silentLogin, implicitFlow;
describe('Login component - SSO', () => { describe('Login component - SSO implicit Flow', () => {
afterEach(() => { afterEach(() => {
navigationBarPage.clickLogoutButton(); navigationBarPage.clickLogoutButton();
@ -38,18 +41,16 @@ describe('Login component - SSO', () => {
it('[C261050] Should be possible login with SSO', () => { it('[C261050] Should be possible login with SSO', () => {
settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, false, true, 'alfresco'); settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, false, true, 'alfresco');
loginApsPage.clickOnSSOButton(); loginApsPage.clickOnSSOButton();
browser.ignoreSynchronization = true;
loginApsPage.loginSSOIdentityService(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); loginApsPage.loginSSOIdentityService(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
}); });
it('[C280667] Should be redirect directly to keycloak without show the login page with silent login', () => { 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'); 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); 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', () => { 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'); 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());
});
});
}); });

View File

@ -60,7 +60,6 @@ module.exports = {
}(), }(),
hostIdentity: function () { hostIdentity: function () {
console.log((PROXY + '/auth'));
return "http://" + (HOST_IDENTITY ? HOST_IDENTITY : (PROXY + '/auth/admin/realms/alfresco')); return "http://" + (HOST_IDENTITY ? HOST_IDENTITY : (PROXY + '/auth/admin/realms/alfresco'));
}() }()

View File

@ -188,7 +188,7 @@ export class LoginComponent implements OnInit {
onSubmit(values: any) { onSubmit(values: any) {
this.disableError(); this.disableError();
if (this.authService.isOauth() && this.authService.isSSODiscoveryConfigured()) { if (this.authService.isOauth() && !this.authService.isSSODiscoveryConfigured()) {
this.errorMsg = 'LOGIN.MESSAGES.SSO-WRONG-CONFIGURATION'; this.errorMsg = 'LOGIN.MESSAGES.SSO-WRONG-CONFIGURATION';
this.isError = true; this.isError = true;
} else { } else {

View File

@ -27,6 +27,7 @@ export class LoginSSOPage {
loginError = element(by.css(`div[data-automation-id="login-error"]`)); loginError = element(by.css(`div[data-automation-id="login-error"]`));
loginSSOIdentityService(username, password) { loginSSOIdentityService(username, password) {
browser.ignoreSynchronization = true;
BrowserVisibility.waitUntilElementIsVisible(this.usernameField); BrowserVisibility.waitUntilElementIsVisible(this.usernameField);
this.enterUsername(username); this.enterUsername(username);
this.enterPassword(password); this.enterPassword(password);

View File

@ -35,9 +35,9 @@ if (process.env.NAME_TEST) {
let args_options = []; let args_options = [];
if (BROWSER_RUN === 'true') { 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 { } 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'); let downloadFolder = path.join(__dirname, 'e2e/downloads');
@ -94,7 +94,7 @@ saveScreenshots = async function (alfrescoJsApi, retryCount) {
'autoRename': true 'autoRename': true
} }
); );
}catch(error){ } catch (error) {
console.log(error); console.log(error);
} }
} }