From af2729a2ef449196be33d12f6458317a54da379c Mon Sep 17 00:00:00 2001 From: Juan Huerta Date: Mon, 26 Oct 2020 14:05:27 -0700 Subject: [PATCH] Updated to work on prod --- institutionsWidget_config.js | 35 +++++++ institutionsWidget_spec.js | 180 +++++++++++++++++++++++++++++++++++ 2 files changed, 215 insertions(+) create mode 100644 institutionsWidget_config.js create mode 100644 institutionsWidget_spec.js diff --git a/institutionsWidget_config.js b/institutionsWidget_config.js new file mode 100644 index 0000000..daedd87 --- /dev/null +++ b/institutionsWidget_config.js @@ -0,0 +1,35 @@ +//institutionsWidget_config.js + +exports.config = { + framework: 'jasmine', + seleniumAddress: 'http://localhost:4444/wd/hub', + specs: ['institutionsWidget_spec.js'], + + jasmineNodeOpts: { + defaultTimeoutInterval: 360000 + }, + + capabilities: { + browserName: 'chrome' + }, + + onPrepare: function() { + browser.sleep(2500); + browser.driver.manage().window().maximize(); + }, + + params: { + login: 'https://app-qa.journeysmap.com/Journey/index.html#/login', + username: 'QA_AutomatedRegression' + } + + /*multiCapabilities: [{ + browserName: 'chrome' + }, { + browserName: 'firefox' + }]/*, { + browserName: 'internet explorer' + }], { + browserName: 'safari' + }]*/ +} \ No newline at end of file diff --git a/institutionsWidget_spec.js b/institutionsWidget_spec.js new file mode 100644 index 0000000..2b18ce1 --- /dev/null +++ b/institutionsWidget_spec.js @@ -0,0 +1,180 @@ +//institutionsWidget_spec.js + +describe('Institutions Widget 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('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.'); + await UserNameTextBox.sendKeys(browser.params.username); + browser.sleep(1000); + await PasswordTextBox.sendKeys('3Dm!nAuto'); + browser.sleep(1000); + await NextButton.click().then(function() { + browser.waitForAngular(); + browser.getCurrentUrl(); + }); + expect(await JourneysGreeting.getText()).toContain('Hi, '); + expect(await JourneysGreeting.getText()).toContain('_Automated'); + browser.waitForAngular(); + browser.getCurrentUrl(); + }); + } + + InstitutionsWidget(); + + //Sign Out*/ + SignOut(); +}); + +function InstitutionsWidget() { + it(': InstitutionsWidget, should interact with Institutions Widget and validate data', async function () { + var InstitutionsWidgetTitle = element(by.css('#myInstitutionsCollapsed #id .jrnys_lead-body-copy')); + var InstitutionsViewAllLink = element(by.css('#myInstitutionsCollapsed .text-color-7a')); + var InstitutionsSearchResults = element(by.css('#divCSCSearchResult b')) + var BackLink = element(by.css('.btn-primary-back-mod')); + var CloseXIcon = element(by.css('.close')); + var UniversityOfSanDiego = element(by.xpath("//span[contains(.,'University of San Diego')]")); + var UniversityOfSanDiegoAtAGlanceIcon = element(by.css('#territoryCardContainer > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div > div.territoryCardItemText.territoryCardMediaHide')); + var UniversityOfSanDiegoBackOfCardTitle = element(by.css('#territoryCardTitleHeader > div.territoryCardTitleText.ng-binding')); + var UniversityOfSanDiegoBackOfCard4YearHeader = element(by.css('#territoryCardContainer > div:nth-child(2) > div:nth-child(2) > territory-card-at-a-glance-back > div > div > div > div.ng-scope > div > table > tbody > tr:nth-child(1) > td:nth-child(2) > div:nth-child(1)')); + var UniversityOfSanDiegoBackOfCard4YearData = element(by.css('#territoryCardContainer > div:nth-child(2) > div:nth-child(2) > territory-card-at-a-glance-back > div > div > div > div.ng-scope > div > table > tbody > tr:nth-child(1) > td:nth-child(2) > div:nth-child(2)')); + var UniversityOfSanDiegoBackOfCardUndergradHeader = element(by.css('#territoryCardContainer > div:nth-child(2) > div:nth-child(2) > territory-card-at-a-glance-back > div > div > div > div.ng-scope > div > table > tbody > tr:nth-child(3) > td:nth-child(2) > div:nth-child(1)')); + var UniversityOfSanDiegoBackOfCardUndergradData = element(by.css('#territoryCardContainer > div:nth-child(2) > div:nth-child(2) > territory-card-at-a-glance-back > div > div > div > div.ng-scope > div > table > tbody > tr:nth-child(3) > td:nth-child(2) > div.territoryCardBackOfCardItemText.ng-binding')); + var UniversityOfSanDiegoBackOfCardLocationHeader = element(by.css('#territoryCardContainer > div:nth-child(2) > div:nth-child(2) > territory-card-at-a-glance-back > div > div > div > div.ng-scope > div > table > tbody > tr:nth-child(5) > td.territoryCardBackOfCardItemText')); + var UniversityOfSanDiegoBackOfCardLocationData = element(by.css('#territoryCardContainer > div:nth-child(2) > div:nth-child(2) > territory-card-at-a-glance-back > div > div > div > div.ng-scope > div > table > tbody > tr:nth-child(5) > td.territoryCardBackOfCardItemText > div')); + var UniversityOfSanDiegoBackOfCardClassroomHeader = element(by.css('#territoryCardContainer > div:nth-child(2) > div:nth-child(2) > territory-card-at-a-glance-back > div > div > div > div.ng-scope > div > table > tbody > tr:nth-child(7) > td.territoryCardBackOfCardItemText')); + var UniversityOfSanDiegoBackOfCardClassroomData = element(by.css('#territoryCardContainer > div:nth-child(2) > div:nth-child(2) > territory-card-at-a-glance-back > div > div > div > div.ng-scope > div > table > tbody > tr:nth-child(7) > td.territoryCardBackOfCardItemText > div')); + var UniversityOfSanDiegoBackOfCardXCloseIcon = element(by.css('#territoryCardTitleHeader > div:nth-child(2) > span')); + var UniversityOfSanDiegoEllipsisIcon = element(by.css('#territoryCardContainer > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div > i')); + var UniversityOfSanDiegoBackOfCardTitleTwo = element(by.css('.ng-scope > #territoryCardTitleHeader > .territoryCardTitleText')); + var UniversityOfSanDiegoBackOfCardFollowIcon = element(by.css('.territoryCardBackOfCardContainer > .territoryCardItemText')); + var UniversityOfSanDiegoBackOfCardLearnMoreIcon = element(by.css('.territoryCardBackOfCardContainer:nth-child(2) > .territoryCardBackOfCardItemText')); + var UniversityOfSanDiegoLearnMoreTitle = element(by.css('td .jrnys_lead-body-copy')); + var UniversityOfSanDiegoLearnMoreIIcon = element(by.css('.journey-info-circle')); + var UniversityOfSanDiegoLearnMoreDIVTitle = element(by.css('.col-lg-12 > .ng-binding')); + var UniversityOfSanDiegoLearnMoreDIVLink = element(by.linkText('http://www.sandiego.edu')); + var CloseXDIVIcon = element(by.css('.fa-times')); + var DashboardHeaderLink = element(by.css('.ng-scope:nth-child(1) > a > span')); + var UniversityOfSanDiegoBackOfCardAtAGlanceIcon = element(by.css('.territoryCardBackOfCardContainer:nth-child(6) > .territoryCardBackOfCardItemText')); + var AlliantInternationalUniversitySanDiego = element(by.xpath("//span[contains(.,'Alliant International University-San Diego')]")); + var NationalUniversity = element(by.xpath("//span[contains(.,'National University')]")); + var InstitutionsRightScroll = element(by.xpath('//div[2]/div/a[2]/span')); + var PointLomaNazareneUniversity = element(by.xpath("//span[contains(.,'Point Loma Nazarene University')]")); + var UniversityOfCaliforniaSanDiego = element(by.xpath("//span[contains(.,'University of California-San Diego')]")); + var SanDiegoStateUniversity = element(by.xpath("//span[contains(.,'San Diego State University')]")); + + browser.executeScript('window.scrollTo(0, 2838);').then(function() { + browser.sleep(2500); + }); + expect(await InstitutionsWidgetTitle.getText()).toEqual('Institutions View All'); + await InstitutionsViewAllLink.click().then(function() { + browser.sleep(2500); + }); + expect(await InstitutionsSearchResults.getText()).toEqual('Search Results (32)'); + //ADD CHECKS + browser.executeScript('window.scrollTo(0, 0);').then(function() { + browser.sleep(1000); + }); + await BackLink.click().then(function() { + browser.sleep(5000); + }); + browser.executeScript('window.scrollTo(0, 2838);').then(function() { + browser.sleep(2500); + }); + expect(await UniversityOfSanDiego.getText()).toEqual('University of San Diego'); + expect(await AlliantInternationalUniversitySanDiego.getText()).toEqual('Alliant International University-San Diego') + expect(await NationalUniversity.getText()).toEqual('National University'); + await UniversityOfSanDiegoAtAGlanceIcon.click().then(function() { + browser.sleep(2500) + }); + expect(await UniversityOfSanDiegoBackOfCardTitle.getText()).toEqual('University of San Diego'); + expect(await UniversityOfSanDiegoBackOfCard4YearHeader.getText()).toEqual('4 Year'); + expect(await UniversityOfSanDiegoBackOfCard4YearData.getText()).toEqual('Private nonprofit'); + expect(await UniversityOfSanDiegoBackOfCardUndergradHeader.getText()).toEqual('Undergraduate Students'); + expect(await UniversityOfSanDiegoBackOfCardUndergradData.getText()).toEqual('5,760'); + expect(await UniversityOfSanDiegoBackOfCardLocationHeader.getText()).toContain('Location'); + expect(await UniversityOfSanDiegoBackOfCardLocationData.getText()).toEqual('City'); + expect(await UniversityOfSanDiegoBackOfCardClassroomHeader.getText()).toContain('Classrooms'); + expect(await UniversityOfSanDiegoBackOfCardClassroomData.getText()).toEqual('Medium'); + await UniversityOfSanDiegoBackOfCardXCloseIcon.click().then(function() { + browser.sleep(1000); + }); + browser.executeScript('window.scrollTo(0, 2838);').then(function() { + browser.sleep(1000); + }); + await UniversityOfSanDiegoEllipsisIcon.click().then(function() { + browser.sleep(2500); + }); + expect(await UniversityOfSanDiegoBackOfCardTitleTwo.getText()).toEqual('University of San Diego'); + expect(await UniversityOfSanDiegoBackOfCardFollowIcon.getText()).toEqual('Follow'); + expect(await UniversityOfSanDiegoBackOfCardLearnMoreIcon.getText()).toEqual('Learn More'); + expect(await UniversityOfSanDiegoBackOfCardAtAGlanceIcon.getText()).toEqual('At A Glance'); + await UniversityOfSanDiegoBackOfCardLearnMoreIcon.click().then(function() { + browser.sleep(2500); + }); + expect(await UniversityOfSanDiegoLearnMoreTitle.getText()).toEqual('University of San Diego'); + await UniversityOfSanDiegoLearnMoreIIcon.click().then(function() { + browser.sleep(2500); + }); + expect(await UniversityOfSanDiegoLearnMoreDIVTitle.getText()).toEqual('University of San Diego'); + expect(await UniversityOfSanDiegoLearnMoreDIVLink.getText()).toEqual('http://www.sandiego.edu'); + await CloseXDIVIcon.click().then(function() { + browser.sleep(2500); + }); + await DashboardHeaderLink.click().then(function() { + browser.sleep(2500); + }); + browser.executeScript('window.scrollTo(0, 2838);').then(function() { + browser.sleep(2500); + }); + expect(await UniversityOfSanDiego.getText()).toEqual('University of San Diego'); + expect(await AlliantInternationalUniversitySanDiego.getText()).toEqual('Alliant International University-San Diego') + expect(await NationalUniversity.getText()).toEqual('National University'); + await InstitutionsRightScroll.click().then(function() { + browser.sleep(2500); + }); + expect(await PointLomaNazareneUniversity.getText()).toEqual('Point Loma Nazarene University'); + expect(await UniversityOfCaliforniaSanDiego.getText()).toEqual('University of California-San Diego'); + expect(await SanDiegoStateUniversity.getText()).toEqual('San Diego State University'); + browser.waitForAngular(); + browser.getCurrentUrl(); + }); +} + +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')); + + browser.waitForAngular(); + browser.sleep(1000); + await ProfileImage.click(); + browser.sleep(1000); + browser.waitForAngular(); + browser.getCurrentUrl(); + await SignOutButton.click().then(function() { + browser.sleep(2500); + }); + }); +} \ No newline at end of file