mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
* add missing import remove creation folder in redirect test in main folder fix update script update node js-api to last alpha before to install improve share dialog test * update gnu * fix notification and search e2e * change name compatible with file name * improve failing test to avoid cdk overlay problems * [ADF-3561] fix Outcome not translatable * increase sleep in user permission checklist missing uppercase comment possible different value in test due time * improve document list actions * improve document list action test * tag refresh bbefore next test comment possible value due the time
330 lines
10 KiB
TypeScript
330 lines
10 KiB
TypeScript
/*!
|
|
* @license
|
|
* Copyright 2016 Alfresco Software, Ltd.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import { FormControllersPage } from './material/formControllersPage';
|
|
|
|
import Util = require('../../util/util');
|
|
import TestConfig = require('../../test.config');
|
|
import { SettingsPage } from './settingsPage';
|
|
import { element, by, protractor, browser } from 'protractor';
|
|
|
|
export class LoginPage {
|
|
|
|
formControllersPage = new FormControllersPage();
|
|
txtUsername = element(by.css('input[id="username"]'));
|
|
txtPassword = element(by.css('input[id="password"]'));
|
|
logoImg = element(by.css('img[id="adf-login-img-logo"]'));
|
|
successRouteTxt = element(by.css('input[data-automation-id="adf-success-route"]'));
|
|
logoTxt = element(by.css('input[data-automation-id="adf-url-logo"]'));
|
|
usernameTooltip = element(by.css('span[data-automation-id="username-error"]'));
|
|
passwordTooltip = element(by.css('span[data-automation-id="password-required"]'));
|
|
loginTooltip = element(by.css('span[class="login-error-message"]'));
|
|
usernameInactive = element(by.css('input[id="username"][aria-invalid="false"]'));
|
|
passwordInactive = element(by.css('input[id="password"][aria-invalid="false"]'));
|
|
adfLogo = element(by.css('img[class="adf-img-logo ng-star-inserted"]'));
|
|
usernameHighlighted = element(by.css('input[id="username"][aria-invalid="true"]'));
|
|
passwordHighlighted = element(by.css('input[id="password"][aria-invalid="true"]'));
|
|
signInButton = element(by.id('login-button'));
|
|
showPasswordElement = element(by.css('mat-icon[data-automation-id="show_password"]'));
|
|
hidePasswordElement = element(by.css('mat-icon[data-automation-id="hide_password"]'));
|
|
rememberMe = element(by.css('mat-checkbox[id="adf-login-remember"]'));
|
|
needHelp = element(by.css('div[id="adf-login-action-left"]'));
|
|
register = element(by.css('div[id="adf-login-action-right"]'));
|
|
footerSwitch = element(by.id('switch4'));
|
|
rememberMeSwitch = element(by.id('adf-toogle-show-rememberme'));
|
|
successRouteSwitch = element(by.id('adf-toogle-show-successRoute'));
|
|
logoSwitch = element(by.id('adf-toogle-logo'));
|
|
header = element(by.id('adf-header'));
|
|
cardBackground = element(by.css('mat-card[class*="adf-login-card"]'));
|
|
settingsPage = new SettingsPage();
|
|
|
|
waitForElements() {
|
|
let deferred = protractor.promise.defer();
|
|
|
|
Util.waitUntilElementIsVisible(this.txtUsername).then(() => {
|
|
Util.waitUntilElementIsVisible(this.txtPassword).then(() => {
|
|
deferred.fulfill();
|
|
}, () => {
|
|
deferred.rejected();
|
|
});
|
|
});
|
|
|
|
return deferred.promise;
|
|
|
|
}
|
|
|
|
enterUsername(username) {
|
|
Util.waitUntilElementIsVisible(this.txtUsername);
|
|
this.txtUsername.sendKeys('');
|
|
return this.txtUsername.clear().sendKeys(username);
|
|
}
|
|
|
|
enterPassword(password) {
|
|
Util.waitUntilElementIsVisible(this.txtPassword);
|
|
return this.txtPassword.clear().sendKeys(password);
|
|
}
|
|
|
|
clearUsername() {
|
|
Util.waitUntilElementIsVisible(this.txtUsername);
|
|
return this.txtUsername.click().clear();
|
|
}
|
|
|
|
clearPassword() {
|
|
Util.waitUntilElementIsVisible(this.txtPassword);
|
|
this.txtPassword.getAttribute('value').then((value) => {
|
|
for (let i = value.length; i >= 0; i--) {
|
|
this.txtPassword.sendKeys(protractor.Key.BACK_SPACE);
|
|
}
|
|
});
|
|
}
|
|
|
|
checkUsernameTooltip() {
|
|
Util.waitUntilElementIsVisible(this.usernameTooltip);
|
|
}
|
|
|
|
checkPasswordTooltip() {
|
|
Util.waitUntilElementIsVisible(this.passwordTooltip);
|
|
}
|
|
|
|
checkLoginError(message) {
|
|
Util.waitUntilElementIsVisible(this.loginTooltip);
|
|
expect(this.loginTooltip.getText()).toEqual(message);
|
|
}
|
|
|
|
checkLoginImgURL(url) {
|
|
Util.waitUntilElementIsVisible(this.logoImg);
|
|
expect(this.logoImg.getAttribute('src')).toEqual(url);
|
|
}
|
|
|
|
checkUsernameInactive() {
|
|
Util.waitUntilElementIsVisible(this.usernameInactive);
|
|
}
|
|
|
|
checkPasswordInactive() {
|
|
Util.waitUntilElementIsVisible(this.passwordInactive);
|
|
}
|
|
|
|
checkUsernameHighlighted() {
|
|
this.adfLogo.click();
|
|
Util.waitUntilElementIsVisible(this.usernameHighlighted);
|
|
}
|
|
|
|
checkPasswordHighlighted() {
|
|
this.adfLogo.click();
|
|
Util.waitUntilElementIsVisible(this.passwordHighlighted);
|
|
}
|
|
|
|
checkUsernameTooltipIsNotVisible() {
|
|
Util.waitUntilElementIsNotVisible(this.usernameTooltip);
|
|
}
|
|
|
|
checkPasswordTooltipIsNotVisible() {
|
|
Util.waitUntilElementIsNotVisible(this.passwordTooltip);
|
|
}
|
|
|
|
checkSignInButtonIsEnabled() {
|
|
Util.waitUntilElementIsVisible(this.signInButton);
|
|
expect(this.signInButton.isEnabled()).toBe(true);
|
|
}
|
|
|
|
defaultLogin() {
|
|
browser.driver.get(TestConfig.adf.url + TestConfig.adf.login);
|
|
this.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
}
|
|
|
|
loginUsingUserModel(userModel) {
|
|
browser.driver.get(TestConfig.adf.url + TestConfig.adf.login);
|
|
this.waitForElements();
|
|
this.login(userModel.getId(), userModel.getPassword());
|
|
}
|
|
|
|
loginToProcessServicesUsingUserModel(userModel) {
|
|
this.settingsPage.setProviderBpm();
|
|
this.waitForElements();
|
|
this.login(userModel.email, userModel.password);
|
|
}
|
|
|
|
loginToProcessServicesUsingDefaultUser() {
|
|
this.settingsPage.setProviderBpm();
|
|
this.waitForElements();
|
|
this.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
}
|
|
|
|
loginToContentServicesUsingUserModel(userModel) {
|
|
this.settingsPage.setProviderEcm();
|
|
this.waitForElements();
|
|
|
|
this.login(userModel.getId(), userModel.getPassword());
|
|
}
|
|
|
|
loginToContentServices(username, password) {
|
|
this.settingsPage.setProviderEcm();
|
|
this.waitForElements();
|
|
|
|
this.login(username, password);
|
|
}
|
|
|
|
goToLoginPage() {
|
|
browser.driver.get(TestConfig.adf.url + TestConfig.adf.port + '/login');
|
|
this.waitForElements();
|
|
}
|
|
|
|
checkSignInButtonIsDisabled() {
|
|
Util.waitUntilElementIsVisible(this.signInButton);
|
|
expect(this.signInButton.isEnabled()).toBe(false);
|
|
}
|
|
|
|
clickSignInButton() {
|
|
Util.waitUntilElementIsVisible(this.signInButton);
|
|
this.signInButton.click();
|
|
}
|
|
|
|
clickRememberMe() {
|
|
Util.waitUntilElementIsVisible(this.rememberMe);
|
|
this.rememberMe.click();
|
|
}
|
|
|
|
showPassword() {
|
|
Util.waitUntilElementIsVisible(this.showPasswordElement);
|
|
this.showPasswordElement.click();
|
|
}
|
|
|
|
getShowPasswordIconColor() {
|
|
let deferred = protractor.promise.defer();
|
|
|
|
Util.waitUntilElementIsVisible(this.showPasswordElement);
|
|
this.showPasswordElement.getCssValue('color').then((value) => {
|
|
deferred.fulfill(value);
|
|
});
|
|
|
|
return deferred.promise;
|
|
}
|
|
|
|
getSignInButtonColor() {
|
|
let deferred = protractor.promise.defer();
|
|
|
|
Util.waitUntilElementIsVisible(this.signInButton);
|
|
this.signInButton.getCssValue('color').then((value) => {
|
|
deferred.fulfill(value);
|
|
});
|
|
|
|
return deferred.promise;
|
|
}
|
|
|
|
getBackgroundColor() {
|
|
let deferred = protractor.promise.defer();
|
|
|
|
Util.waitUntilElementIsVisible(this.cardBackground);
|
|
this.cardBackground.getCssValue('color').then((value) => {
|
|
deferred.fulfill(value);
|
|
});
|
|
|
|
return deferred.promise;
|
|
}
|
|
|
|
hidePassword() {
|
|
Util.waitUntilElementIsVisible(this.hidePasswordElement);
|
|
this.hidePasswordElement.click();
|
|
}
|
|
|
|
checkPasswordIsShown(password) {
|
|
this.txtPassword.getAttribute('value').then((text) => {
|
|
expect(text).toEqual(password);
|
|
});
|
|
}
|
|
|
|
checkPasswordIsHidden() {
|
|
Util.waitUntilElementIsVisible(this.txtPassword);
|
|
}
|
|
|
|
checkRememberIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.rememberMe);
|
|
}
|
|
|
|
checkRememberIsNotDisplayed() {
|
|
Util.waitUntilElementIsNotVisible(this.rememberMe);
|
|
}
|
|
|
|
checkNeedHelpIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.needHelp);
|
|
}
|
|
|
|
checkNeedHelpIsNotDisplayed() {
|
|
Util.waitUntilElementIsNotVisible(this.needHelp);
|
|
}
|
|
|
|
checkRegisterDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.register);
|
|
}
|
|
|
|
checkRegisterIsNotDisplayed() {
|
|
Util.waitUntilElementIsNotVisible(this.register);
|
|
}
|
|
|
|
enableFooter() {
|
|
this.formControllersPage.enableToggle(this.footerSwitch);
|
|
}
|
|
|
|
disableFooter() {
|
|
this.formControllersPage.disableToggle(this.footerSwitch);
|
|
}
|
|
|
|
disableRememberMe() {
|
|
this.formControllersPage.disableToggle(this.rememberMeSwitch);
|
|
}
|
|
|
|
enableRememberMe() {
|
|
this.formControllersPage.enableToggle(this.rememberMeSwitch);
|
|
}
|
|
|
|
disableSuccessRouteSwitch() {
|
|
this.formControllersPage.disableToggle(this.successRouteSwitch);
|
|
}
|
|
|
|
enableSuccessRouteSwitch() {
|
|
this.formControllersPage.enableToggle(this.successRouteSwitch);
|
|
}
|
|
|
|
disableLogowitch() {
|
|
this.formControllersPage.disableToggle(this.logoSwitch);
|
|
}
|
|
|
|
enableLogoSwitch() {
|
|
this.formControllersPage.enableToggle(this.logoSwitch);
|
|
}
|
|
|
|
enterSuccessRoute(route) {
|
|
Util.waitUntilElementIsVisible(this.successRouteTxt);
|
|
this.successRouteTxt.sendKeys('');
|
|
return this.successRouteTxt.clear().sendKeys(route);
|
|
}
|
|
|
|
enterLogo(logo) {
|
|
Util.waitUntilElementIsVisible(this.logoTxt);
|
|
this.logoTxt.sendKeys('');
|
|
return this.logoTxt.clear().sendKeys(logo);
|
|
}
|
|
|
|
login(username, password) {
|
|
this.waitForElements();
|
|
this.enterUsername(username);
|
|
this.enterPassword(password);
|
|
this.clickSignInButton();
|
|
return Util.waitUntilElementIsVisible(this.header);
|
|
}
|
|
}
|