//userProfile_spec.js describe('User Profile script', function () { //login-journeysmap landing page var UserNameTextBox = element(by.css('#txtU')); var PasswordTextBox = element(by.css('#txtP')); //Open browser browser.get(browser.params.login); it('should have a title', async function () { await expect(browser.getTitle()).toEqual('Login'); }); //Sign In SignIn(UserNameTextBox, PasswordTextBox); it('should have a title', async function () { await expect(browser.getTitle()).toEqual('My Dashboard'); }); function SignIn(UserNameTextBox, PasswordTextBox) { it('SignIn, should sign into journeysmap.com', async function () { var PageGreetingText = element(by.css('td > div > div:nth-child(1)')); var NextButton = element(by.css('.btn')); var JourneysGreeting = element(by.css('.dropdown')); expect(await PageGreetingText.getText()).toEqual('Login and start exploring.'); browser.sleep(1500); await UserNameTextBox.sendKeys(browser.params.username).then(function() { browser.sleep(1500); }); await PasswordTextBox.sendKeys('3Dm!nAuto').then(function() { browser.sleep(1500); }); await NextButton.click().then(function() { browser.sleep(5000); }); expect(await JourneysGreeting.getText()).toContain('Hi, '); expect(await JourneysGreeting.getText()).toContain('_Automated'); browser.waitForAngular(); browser.getCurrentUrl(); }); } UserProfile(); SignOut(); //LogBackInToResetTestCase(); //CAN'T GET SCRIPT TO SUCCESSFULLY SAVE EDIT PROFILE RESET TO REMOVE EMAIL AND MIDDLE INITIAL }); function UserProfile() { it(': UserProfile, Should interact with the Account Information page', async function () { var ProfileImage = element(by.css('.roundCenterBackgroundImage')); var ProfileLink = element(by.linkText('Profile')); //Account Information Page var PageTitle = element(by.css('#title')); //Personal Information block var PersonalInformationTitle = element(by.css('div > .col-12 > h4')); var AccountInformationGreeting = element(by.css('.navbar-nav:nth-child(2) > .nav-item:nth-child(1)')); var UserNameText = element(by.css('h5')); var UserEmailHeader = element(by.css('.col-lg-4 .col-3')); var UserEmailText = element(by.css('.col-lg-4 .col-7')); var UserRoleHeader = element(by.css('.col-12:nth-child(3) > .row > .col-3')); var UserRoleText = element(by.css('.col-12:nth-child(3) > .row > .col-7')); var UserBirthDateHeader = element(by.css('.col-12:nth-child(4) .col-3')); var UserBirthDateText = element(by.css('.col-12:nth-child(4) .col-7')); var UserZipCodeHeader = element(by.css('.col-lg-2 .col-3')); var UserZipCodeText = element(by.css('.col-lg-2 .col-7')); //My Connection block var MyConnectionTitleRow = element(by.css('.ng-untouched h4')); var ConnectionCodeHeader = element(by.css('.text-muted:nth-child(1)')); var ConnectionCodeText = element(by.name('newConnectionCode')); var ConnectionCodeButton = element(by.css('.col-md-3 > .btn')); //Edit Profile var EditProfileTile = element(by.css('.col-md-3:nth-child(1) tr:nth-child(1) > td')); var DIVTitle = element(by.css('.ng-star-inserted .bg-secondary')); var FirstNameHeader = element(by.css('.col-12:nth-child(1) .col-4')); var FirstNameTextBox = element(by.name('FirstName')); var MiddleInitialHeader = element(by.css('.col-12:nth-child(2) > .row > .col-4')); var MiddleInitialTextBox = element(by.name('MI')); var LastNameHeader = element(by.css('.col-12:nth-child(3) .col-4')); var LastNameTextBox = element(by.name('LastName')); var EmailHeader = element(by.css('.col-12:nth-child(4) .col-4')); var EmailTextBox = element(by.name('Email')); var BirthDateHeader = element(by.css('.col-12:nth-child(5) .col-4')); var BirthDateTextBox = element(by.name('BirthDate')); var ZipCodeHeader = element(by.css('.col-12:nth-child(6) .col-4')); var ZipCodeTextBox = element(by.name('ZipCode')); var RoleHeader = element(by.css('.col-12:nth-child(7) .col-4')); var RoleTextBox = element(by.name('Role')); var UsernameHeader = element(by.css('.col-12:nth-child(8) .col-4')); var UsernameTextBox = element(by.name('UserName')); var CancelButton = element(by.css('.btn-outline-primary')); var SaveButton = element(by.css('.btn:nth-child(2)')); //Chage Password var ChangePasswordTile = element(by.css('.col-md-3:nth-child(2) tr:nth-child(1) > td')); var EnterCurrentPasswordHeader = element(by.css('.col-lg-8 > div:nth-child(1) > .text-muted')); var EnterCurrentPasswordTextBox = element(by.name('CurrentPassword')); var EnterNewPasswordHeader = element(by.css('div:nth-child(2) > .text-muted')); var EnterNewPasswordTextBox = element(by.name('NewPassword1')); var ReenterNewPasswordHeader = element(by.css('div:nth-child(3) > .text-muted')); var ReenterNewPasswordTextBox = element(by.name('NewPassword2')); //My Connections var MyConnectionTile = element(by.css('.col-md-3:nth-child(3) tr:nth-child(1) > td')); var ConnectionCodeDIVHeader = element(by.css('th:nth-child(1)')); var ConnectionCodeDIVText = element(by.css('.ng-star-inserted > td:nth-child(1)')); var ConnectionTypeHeader = element(by.css('th:nth-child(2)')); var ConnectionTypeText = element(by.css('td:nth-child(2)')); var NameHeader = element(by.css('th:nth-child(3)')); var NameText = element(by.css('td:nth-child(3)')); var OrganizationHeader = element(by.css('th:nth-child(4)')); var OrganizationText = element(by.css('td:nth-child(4)')); var JoinDateHeader = element(by.css('th:nth-child(5)')); var JoinDateText = element(by.css('td:nth-child(5)')); var ExitDateHeader = element(by.css('th:nth-child(6)')); var ExitDateText = element(by.css('td:nth-child(6)')); var CloseButton = element(by.css('.ng-star-inserted .btn')); //Edit Security Question var EditSecurityQuestionTile = element(by.css('.col-md-3:nth-child(4) tr:nth-child(1) > td')); var SelectASecurityQuestionHeader = element(by.css('.col-lg-8 > div:nth-child(1) > .text-muted')); var AnswerSecurityQuestionHeader = element(by.css('div:nth-child(2) > .text-muted')); var AnswerSecurityAnswerTextBox = element(by.name('Answer')); var BackToDashboardLink = element(by.linkText('BACK TO DASHBOARD')); await ProfileImage.click().then(function() { browser.sleep(1500); }); browser.actions().mouseMove(ProfileLink).perform().then(function() { browser.sleep(1500); }); await ProfileLink.click().then(function() { browser.sleep(5000); }); browser.waitForAngularEnabled(false); browser.get(browser.params.nonAngularURL); //Account Information Page expect(await PageTitle.getText()).toEqual('Account Information'); //Personal Information block expect(await PersonalInformationTitle.getText()).toEqual('Personal Information'); await AccountInformationGreeting.getText().then(async function(actualText) { if(actualText.indexOf('Qa_Automated') !== -1) { expect(await UserNameText.getText()).toEqual('Qa_Automated Regression'); } else { expect(await UserNameText.getText()).toEqual('Prod_Automated Regression'); } }); expect(await UserEmailHeader.getText()).toEqual('Email'); expect(await UserEmailText.getText()).toEqual(''); expect(await UserRoleHeader.getText()).toEqual('Role'); expect(await UserRoleText.getText()).toEqual('Student'); expect(await UserBirthDateHeader.getText()).toEqual('Birthdate'); expect(await UserBirthDateText.getText()).toEqual('2000-02-15'); expect(await UserZipCodeHeader.getText()).toEqual('Zip Code'); expect(await UserZipCodeText.getText()).toEqual('92123'); //My Connection block expect(await MyConnectionTitleRow.getText()).toEqual('Make Connection'); expect(await ConnectionCodeHeader.getText()).toEqual('Connection Code'); await ConnectionCodeText.sendKeys('1G8HNBQ7').then(function() { browser.sleep(1500); }); await ConnectionCodeButton.click().then(function() { browser.sleep(2500); var alertDialog = browser.switchTo().alert(); expect(alertDialog.getText()).toContain('Fail to connect.'); expect(alertDialog.getText()).toContain('Class not found'); browser.switchTo().alert().accept(); }); //Edit Profile expect(await EditProfileTile.getText()).toContain('EDIT'); expect(await EditProfileTile.getText()).toContain('PROFILE'); await EditProfileTile.click().then(function() { browser.sleep(2500); }); expect(await DIVTitle.getText()).toEqual('Edit Personal Information'); expect(await FirstNameHeader.getText()).toEqual('First Name'); await AccountInformationGreeting.getText().then(async function(actualText) { if(actualText.indexOf('Qa_Automated') !== -1) { expect(await FirstNameTextBox.getAttribute('value')).toEqual('Qa_Automated'); } else { expect(await FirstNameTextBox.getAttribute('value')).toEqual('Prod_Automated'); } }); expect(await MiddleInitialHeader.getText()).toEqual('Middle Initial'); expect(await MiddleInitialTextBox.getAttribute('value')).toEqual(''); expect(await LastNameHeader.getText()).toEqual('Last Name'); expect(await LastNameTextBox.getAttribute('value')).toEqual('Regression'); expect(await EmailHeader.getText()).toEqual('Email'); expect(await EmailTextBox.getAttribute('value')).toEqual(''); expect(await BirthDateHeader.getText()).toEqual('Birthdate'); expect(await BirthDateTextBox.getAttribute('value')).toEqual('2000-02-15'); expect(await ZipCodeHeader.getText()).toEqual('Zip Code'); expect(await ZipCodeTextBox.getAttribute('value')).toEqual('92123'); expect(await RoleHeader.getText()).toEqual('Role'); expect(await RoleTextBox.getAttribute('value')).toEqual('Student'); expect(await UsernameHeader.getText()).toEqual('Username'); await AccountInformationGreeting.getText().then(async function(actualText) { if(actualText.indexOf('Qa_Automated') !== -1) { expect(await UsernameTextBox.getAttribute('value')).toEqual('QA_AutomatedRegression'); } else { expect(await UsernameTextBox.getAttribute('value')).toEqual('PROD_AutomatedRegression'); } }); expect(await CancelButton.getText()).toEqual('CANCEL'); expect(await SaveButton.getText()).toEqual('SAVE'); await MiddleInitialTextBox.sendKeys('G').then(function() { browser.sleep(1500); }); await EmailTextBox.sendKeys('AutomatedRegression@edmin.com').then(function() { browser.sleep(1500); }); await SaveButton.click().then(function() { browser.sleep(2500); var alertDialog = browser.switchTo().alert(); expect(alertDialog.getText()).toEqual('Personal information is updated.'); browser.switchTo().alert().accept(); browser.sleep(2500); }); expect(await PersonalInformationTitle.getText()).toEqual('Personal Information'); await AccountInformationGreeting.getText().then(async function(actualText) { if(actualText.indexOf('Qa_Automated') !== -1) { expect(await UserNameText.getText()).toEqual('Qa_Automated G. Regression'); } else { expect(await UserNameText.getText()).toEqual('Prod_Automated G. Regression'); } }); expect(await UserEmailHeader.getText()).toEqual('Email'); expect(await UserEmailText.getText()).toEqual('AutomatedRegression@edmin.com'); expect(await UserRoleHeader.getText()).toEqual('Role'); expect(await UserRoleText.getText()).toEqual('Student'); expect(await UserBirthDateHeader.getText()).toEqual('Birthdate'); expect(await UserBirthDateText.getText()).toEqual('2000-02-15'); expect(await UserZipCodeHeader.getText()).toEqual('Zip Code'); expect(await UserZipCodeText.getText()).toEqual('92123'); //Change Password expect(await ChangePasswordTile.getText()).toContain('CHANGE'); expect(await ChangePasswordTile.getText()).toContain('PASSWORD'); await ChangePasswordTile.click().then(function() { browser.sleep(2500); }); expect(await DIVTitle.getText()).toEqual('Change Password'); expect(await EnterCurrentPasswordHeader.getText()).toEqual('Enter Current Password'); await EnterCurrentPasswordTextBox.sendKeys('EDminAuto').then(function() { browser.sleep(1500); }); expect(await EnterNewPasswordHeader.getText()).toEqual('Enter New Password'); await EnterNewPasswordTextBox.sendKeys('edmin123').then(function() { browser.sleep(1500); }); expect(await ReenterNewPasswordHeader.getText()).toEqual('Reenter New Password'); await ReenterNewPasswordTextBox.sendKeys('edmin123').then(function() { browser.sleep(1500); }); expect(await CancelButton.getText()).toEqual('CANCEL'); expect(await SaveButton.getText()).toEqual('SAVE'); await SaveButton.click().then(function() { browser.sleep(2500); var alertDialog = browser.switchTo().alert(); expect(alertDialog.getText()).toContain('Your old password was incorrect. Try again.'); expect(alertDialog.getText()).toContain('Fail to update authentication.'); expect(alertDialog.getText()).toContain('Current password is incorrrect'); browser.switchTo().alert().accept(); }); await EnterCurrentPasswordTextBox.clear().then(function() { browser.sleep(1500); }); await EnterCurrentPasswordTextBox.sendKeys('3Dm!nAuto').then(function() { browser.sleep(1500); }); await EnterNewPasswordTextBox.clear().then(function() { browser.sleep(1500); }); await EnterNewPasswordTextBox.sendKeys('EDmin123').then(function() { browser.sleep(1500); }); await SaveButton.click().then(function() { browser.sleep(2500); var alertDialog = browser.switchTo().alert(); expect(alertDialog.getText()).toContain('New Password failed.'); expect(alertDialog.getText()).toContain('Please provide Current Password and ensure New Passwords fields match.'); browser.switchTo().alert().accept(); }); await EnterNewPasswordTextBox.clear().then(function() { browser.sleep(1500); }); await EnterNewPasswordTextBox.sendKeys('edmin123').then(function() { browser.sleep(1500); }); await SaveButton.click().then(function() { browser.sleep(2500); var alertDialog = browser.switchTo().alert(); expect(alertDialog.getText()).toEqual('Password change saved.'); browser.switchTo().alert().accept(); }); //My Connections expect(await MyConnectionTile.getText()).toContain('MY'); expect(await MyConnectionTile.getText()).toContain('CONNECTIONS'); await MyConnectionTile.click().then(function() { browser.sleep(2500); }); expect(await DIVTitle.getText()).toEqual('My Connections'); expect(await ConnectionCodeDIVHeader.getText()).toContain('CONNECTION'); expect(await ConnectionCodeDIVHeader.getText()).toContain('CODE'); await AccountInformationGreeting.getText().then(async function(actualText) { if(actualText.indexOf('Qa_Automated') !== -1) { expect(await ConnectionCodeDIVText.getText()).toEqual('QYS2VMLJ'); } else { expect(await ConnectionCodeDIVText.getText()).toEqual('C5KWI9W7'); } }); expect(await ConnectionTypeHeader.getText()).toContain('CONNECTION'); expect(await ConnectionTypeHeader.getText()).toContain('TYPE'); expect(await ConnectionTypeText.getText()).toEqual('Class'); expect(await NameHeader.getText()).toEqual('NAME'); expect(await NameText.getText()).toEqual('Connection P-1'); expect(await OrganizationHeader.getText()).toEqual('ORGANIZATION'); await AccountInformationGreeting.getText().then(async function(actualText) { if(actualText.indexOf('Qa_Automated') !== -1) { expect(await OrganizationText.getText()).toEqual('Art Of Eight'); } else { expect(await OrganizationText.getText()).toEqual('ProdLoadTest'); } }); expect(await JoinDateHeader.getText()).toEqual('JOIN DATE'); expect(await JoinDateText.getText()).toEqual('2019-05-29'); expect(await ExitDateHeader.getText()).toEqual('EXIT DATE'); expect(await ExitDateText.getText()).toEqual(''); expect(await CloseButton.getText()).toEqual('CLOSE'); await CloseButton.click().then(function() { browser.sleep(2500); }); //Edit Security Question expect(await EditSecurityQuestionTile.getText()).toContain('EDIT'); expect(await EditSecurityQuestionTile.getText()).toContain('SECURITY'); expect(await EditSecurityQuestionTile.getText()).toContain('QUESTION'); await EditSecurityQuestionTile.click().then(function() { browser.sleep(2500); }); expect(await SelectASecurityQuestionHeader.getText()).toContain('Select a Security Question'); element(by.cssContainingText('option', 'What was the make of your first car?')).click().then(function() { browser.sleep(1500); }); expect(await AnswerSecurityQuestionHeader.getText()).toContain('Answer Security Question'); await AnswerSecurityAnswerTextBox.sendKeys('Chevy Luv').then(function() { browser.sleep(1500); }); expect(await CancelButton.getText()).toContain('CANCEL'); expect(await SaveButton.getText()).toContain('SAVE'); await SaveButton.click().then(function() { browser.sleep(1500); var alertDialog = browser.switchTo().alert(); expect(alertDialog.getText()).toEqual('Security questions is updated.'); browser.switchTo().alert().accept(); browser.sleep(1500); }); //<<<>>> //Password await ChangePasswordTile.click().then(function() { browser.sleep(2500); }); await EnterCurrentPasswordTextBox.sendKeys('edmin123').then(function() { browser.sleep(1500); }); await EnterNewPasswordTextBox.sendKeys('3Dm!nAuto').then(function() { browser.sleep(1500); }); await ReenterNewPasswordTextBox.sendKeys('3Dm!nAuto').then(function() { browser.sleep(1500); }); await SaveButton.click().then(function() { browser.sleep(2500); var alertDialog = browser.switchTo().alert(); expect(alertDialog.getText()).toEqual('Password change saved.'); browser.switchTo().alert().accept(); }); //Back to Dashboard expect(await BackToDashboardLink.getText()).toContain('BACK TO DASHBOARD'); await BackToDashboardLink.click().then(function() { browser.sleep(2500); }); }); } function SignOut() { it(': SignOut; should log out of journeysmap.', async function () { var ProfileImage = element(by.css('.roundCenterBackgroundImage')); var SignOutButton = element(by.css('.dropDownFAEdits:nth-child(5) > .btn')); await ProfileImage.click().then(function() { browser.sleep(1000); }); await SignOutButton.click().then(function() { browser.sleep(2500); }); }); } //Back to Edit Profile to remove Email and MI (script issue) function LogBackInToResetTestCase() { it('should sign back into journeysmap.com and reset profile email & middle initial', async function () { var PageGreetingText = element(by.css('td > div > div:nth-child(1)')); var UserNameTextBox = element(by.css('#txtU')); var PasswordTextBox = element(by.css('#txtP')); var NextButton = element(by.css('.btn')); var ProfileImage = element(by.css('.roundCenterBackgroundImage')); var ProfileLink = element(by.linkText('Profile')); //Account Information Page var PageTitle = element(by.css('#title')); //Personal Information block var PersonalInformationTitle = element(by.css('div > .col-12 > h4')); var AccountInformationGreeting = element(by.css('.navbar-nav:nth-child(2) > .nav-item:nth-child(1)')); var UserNameText = element(by.css('h5')); var UserEmailHeader = element(by.css('.col-lg-4 .col-3')); var UserEmailText = element(by.css('.col-lg-4 .col-7')); var UserRoleHeader = element(by.css('.col-12:nth-child(3) > .row > .col-3')); var UserRoleText = element(by.css('.col-12:nth-child(3) > .row > .col-7')); var UserBirthDateHeader = element(by.css('.col-12:nth-child(4) .col-3')); var UserBirthDateText = element(by.css('.col-12:nth-child(4) .col-7')); var UserZipCodeHeader = element(by.css('.col-lg-2 .col-3')); var UserZipCodeText = element(by.css('.col-lg-2 .col-7')); //Edit Profile var EditProfileTile = element(by.css('.col-md-3:nth-child(1) tr:nth-child(1) > td')); var MiddleInitialHeader = element(by.css('.col-12:nth-child(2) > .row > .col-4')); var MiddleInitialTextBox = element(by.name('MI')); var EmailHeader = element(by.css('.col-12:nth-child(4) .col-4')); var EmailTextBox = element(by.name('Email')); var SaveButton = element(by.css('.btn:nth-child(2)')); var ResetProfileImage = element(by.css('.dropdown-toggle > .jmRoundCenterImage')); var ResetSignOutButton = element(by.css('li > .btn')); browser.get(browser.params.login).then(function() { browser.sleep(2500); }); //browser.waitForAngularEnabled(true); expect(await PageGreetingText.getText()).toEqual('Login and start exploring.'); browser.sleep(2500); await UserNameTextBox.sendKeys(browser.params.username).then(function() { browser.sleep(2500); }); await PasswordTextBox.sendKeys('3Dm!nAuto').then(function() { browser.sleep(2500); }); await NextButton.click().then(function() { browser.sleep(5000); browser.waitForAngular(); browser.getCurrentUrl(); }); await ProfileImage.click().then(function() { browser.sleep(1500); }); browser.actions().mouseMove(ProfileLink).perform().then(function() { browser.sleep(1500); }); await ProfileLink.click().then(function() { browser.sleep(5000); }); //Account Information Page browser.waitForAngularEnabled(false); browser.get(browser.params.nonAngularURL); expect(await PageTitle.getText()).toEqual('Account Information'); await EditProfileTile.click().then(function() { browser.sleep(2500); }); expect(await MiddleInitialHeader.getText()).toEqual('Middle Initial'); expect(await MiddleInitialTextBox.getAttribute('value')).toEqual('G'); expect(await EmailHeader.getText()).toEqual('Email'); expect(await EmailTextBox.getAttribute('value')).toEqual('AutomatedRegression@edmin.com'); await MiddleInitialTextBox.clear().then(function() { browser.sleep(1500); }); await EmailTextBox.clear().then(function() { browser.sleep(1500); }); await SaveButton.click().then(function() { browser.sleep(2500); var alertDialog = browser.switchTo().alert(); expect(alertDialog.getText()).toEqual('Personal information is updated.'); browser.switchTo().alert().accept(); browser.sleep(2500); }); expect(await PersonalInformationTitle.getText()).toEqual('Personal Information'); await AccountInformationGreeting.getText().then(async function(actualText) { if(actualText.indexOf('Qa_Automated') !== -1) { expect(await UserNameText.getText()).toEqual('Qa_Automated Regression'); } else { expect(await UserNameText.getText()).toEqual('Prod_Automated Regression'); } }); expect(await UserEmailHeader.getText()).toEqual('Email'); expect(await UserEmailText.getText()).toEqual(''); expect(await UserRoleHeader.getText()).toEqual('Role'); expect(await UserRoleText.getText()).toEqual('Student'); expect(await UserBirthDateHeader.getText()).toEqual('Birthdate'); expect(await UserBirthDateText.getText()).toEqual('2000-02-15'); expect(await UserZipCodeHeader.getText()).toEqual('Zip Code'); expect(await UserZipCodeText.getText()).toEqual('92123'); await ResetProfileImage.click().then(function() { browser.sleep(1500); }); await ResetSignOutButton.click().then(function() { browser.sleep(1500); }); }); }