diff --git a/HubWeb.csproj b/HubWeb.csproj index c2e4eef9ad..8a0dd356df 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -720,7 +720,10 @@ + + + diff --git a/Scripts/tests/e2e/authorizationPathways/docusign.spec.js b/Scripts/tests/e2e/authorizationPathways/docusign.spec.js new file mode 100644 index 0000000000..d7e2e437d1 --- /dev/null +++ b/Scripts/tests/e2e/authorizationPathways/docusign.spec.js @@ -0,0 +1,59 @@ +var PlansPage = require('../pages/plans.page.js'); +var ManageAuthTokens = require('../shared/manageAuthTokens.js'); +var AccountHelper = require('../shared/accountHelper.js'); +var MyAccountPage = require('../pages/myAccount.page.js'); +var UIHelpers = require('../shared/uiHelpers.js'); +var RegistrationPage = require('../pages/registration.page.js'); + +describe('DocuSign Authorization pathway test', function () { + var plansPage = new PlansPage(); + var manageAuthTokens = new ManageAuthTokens(); + var accountHelper = new AccountHelper(); + var myAccountPage = new MyAccountPage(); + var uiHelpers = new UIHelpers(); + + it('should login', function () { + return accountHelper.login().then(function () { + plansPage.setEmail(browser.params.username); + plansPage.setPassword(browser.params.password); + return plansPage.login().click().then(function () { + }); + }); + }); + + //it('should control and remove tokens', function () { + // return browser.driver.get(browser.baseUrl + '/dashboard/manageAuthTokens').then(function () { + // expect(element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div/div[1]/div[1]/div/div/div/div[1]/div[2]/table/thead/tr/th[1]'))); + // return manageAuthTokens.revokeAuthTokens(); + // }); + //}); + + it('should go to myAccount page', function () { + return myAccountPage.get(); + expect(browser.getCurrentUrl()).toEqual('http://dev.fr8.co/dashboard/myaccount'); + }); + + it('should add plan', function () { + return plansPage.addPlan().then(function () { + return plansPage.addActivity(); + }); + }); + + it('should add DocuSign Monitor activity', function () { + return plansPage.addDocuSignActivity().then(function () { + return plansPage.getDocuSignActivity(); + }); + }); + + describe('should logout', function () { + + var registrationPage = new RegistrationPage(); + + it('should logout', function () { + return accountHelper.logout().then(function () { + expect(browser.getCurrentUrl()).toContain('/DockyardAccount'); + }); + }); + }); + +}); \ No newline at end of file diff --git a/Scripts/tests/e2e/authorizationPathways/google.spec.js b/Scripts/tests/e2e/authorizationPathways/google.spec.js index c9ca25ab51..ad062e30db 100644 --- a/Scripts/tests/e2e/authorizationPathways/google.spec.js +++ b/Scripts/tests/e2e/authorizationPathways/google.spec.js @@ -3,6 +3,7 @@ var ManageAuthTokens = require('../shared/manageAuthTokens.js'); var AccountHelper = require('../shared/accountHelper.js'); var MyAccountPage = require('../pages/myAccount.page.js'); var UIHelpers = require('../shared/uiHelpers.js'); +var RegistrationPage = require('../pages/registration.page.js'); describe('Google Authorization pathway test', function () { var plansPage = new PlansPage(); @@ -20,6 +21,13 @@ describe('Google Authorization pathway test', function () { }); }); + it('should control and remove tokens', function () { + return browser.driver.get(browser.baseUrl + '/dashboard/manageAuthTokens').then(function () { + expect(element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div/div[1]/div[1]/div/div/div/div[1]/div[2]/table/thead/tr/th[1]'))); + return manageAuthTokens.revokeAuthTokens(); + }); + }); + it('should go to myAccount page', function () { return myAccountPage.get(); expect(browser.getCurrentUrl()).toEqual('http://dev.fr8.co/dashboard/myaccount'); @@ -37,4 +45,28 @@ describe('Google Authorization pathway test', function () { }); }); + //it('should add account', function () { + // //var elm = element(by.className('.auth-link-account')); + // //return uiHelpers.waitReady(elm).then(function () { + // // googlePage.addAccount().then(function () { + // // return googlePage.getAllow(); + // // }); + // //}); + + // return plansPage.addAccount().then(function () { + // return plansPage.getAllow(); + // }); + //}); + + describe('should logout', function () { + + var registrationPage = new RegistrationPage(); + + it('should logout', function () { + return accountHelper.logout().then(function () { + expect(browser.getCurrentUrl()).toContain('/DockyardAccount'); + }); + }); + }); + }); \ No newline at end of file diff --git a/Scripts/tests/e2e/authorizationPathways/salesforce.spec.js b/Scripts/tests/e2e/authorizationPathways/salesforce.spec.js new file mode 100644 index 0000000000..d6003eb5d2 --- /dev/null +++ b/Scripts/tests/e2e/authorizationPathways/salesforce.spec.js @@ -0,0 +1,59 @@ +var PlansPage = require('../pages/plans.page.js'); +var ManageAuthTokens = require('../shared/manageAuthTokens.js'); +var AccountHelper = require('../shared/accountHelper.js'); +var MyAccountPage = require('../pages/myAccount.page.js'); +var UIHelpers = require('../shared/uiHelpers.js'); +var RegistrationPage = require('../pages/registration.page.js'); + +describe('SalesForce Authorization pathway test', function () { + var plansPage = new PlansPage(); + var manageAuthTokens = new ManageAuthTokens(); + var accountHelper = new AccountHelper(); + var myAccountPage = new MyAccountPage(); + var uiHelpers = new UIHelpers(); + + it('should login', function () { + return accountHelper.login().then(function () { + plansPage.setEmail(browser.params.username); + plansPage.setPassword(browser.params.password); + return plansPage.login().click().then(function () { + }); + }); + }); + + //it('should control and remove tokens', function () { + // return browser.driver.get(browser.baseUrl + '/dashboard/manageAuthTokens').then(function () { + // expect(element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div/div[1]/div[1]/div/div/div/div[1]/div[2]/table/thead/tr/th[1]'))); + // return manageAuthTokens.revokeAuthTokens(); + // }); + //}); + + it('should go to myAccount page', function () { + return myAccountPage.get(); + expect(browser.getCurrentUrl()).toEqual('http://dev.fr8.co/dashboard/myaccount'); + }); + + it('should add plan', function () { + return plansPage.addPlan().then(function () { + return plansPage.addActivity(); + }); + }); + + it('should add salesForce get data activity', function () { + return plansPage.addSalesForceActivity().then(function () { + return plansPage.getSalesForceGetDataActivity(); + }); + }); + + describe('should logout', function () { + + var registrationPage = new RegistrationPage(); + + it('should logout', function () { + return accountHelper.logout().then(function () { + expect(browser.getCurrentUrl()).toContain('/DockyardAccount'); + }); + }); + }); + +}); \ No newline at end of file diff --git a/Scripts/tests/e2e/authorizationPathways/slack.spec.js b/Scripts/tests/e2e/authorizationPathways/slack.spec.js new file mode 100644 index 0000000000..ffe3d4a3ff --- /dev/null +++ b/Scripts/tests/e2e/authorizationPathways/slack.spec.js @@ -0,0 +1,58 @@ +var PlansPage = require('../pages/plans.page.js'); +var ManageAuthTokens = require('../shared/manageAuthTokens.js'); +var AccountHelper = require('../shared/accountHelper.js'); +var MyAccountPage = require('../pages/myAccount.page.js'); +var UIHelpers = require('../shared/uiHelpers.js'); +var RegistrationPage = require('../pages/registration.page.js'); + +describe('Slack Authorization pathway test', function () { + var plansPage = new PlansPage(); + var manageAuthTokens = new ManageAuthTokens(); + var accountHelper = new AccountHelper(); + var myAccountPage = new MyAccountPage(); + var uiHelpers = new UIHelpers(); + + it('should login', function () { + return accountHelper.login().then(function () { + plansPage.setEmail(browser.params.username); + plansPage.setPassword(browser.params.password); + return plansPage.login().click().then(function () { + }); + }); + }); + + //it('should control and remove tokens', function () { + // return browser.driver.get(browser.baseUrl + '/dashboard/manageAuthTokens').then(function () { + // expect(element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div/div[1]/div[1]/div/div/div/div[1]/div[2]/table/thead/tr/th[1]'))); + // return manageAuthTokens.revokeAuthTokens(); + // }); + //}); + + it('should go to myAccount page', function () { + return myAccountPage.get(); + expect(browser.getCurrentUrl()).toEqual('http://dev.fr8.co/dashboard/myaccount'); + }); + + it('should add plan', function () { + return plansPage.addPlan().then(function () { + return plansPage.addActivity(); + }); + }); + + it('should add Slack activity', function () { + return plansPage.addSlackActivity().then(function () { + return plansPage.getSlackMonitorActivity(); + }); + }); + + describe('should logout', function () { + + var registrationPage = new RegistrationPage(); + + it('should logout', function () { + return accountHelper.logout().then(function () { + expect(browser.getCurrentUrl()).toContain('/DockyardAccount'); + }); + }); + }); +}); \ No newline at end of file diff --git a/Scripts/tests/e2e/conf.js b/Scripts/tests/e2e/conf.js index 0cc18823bf..326a82ef6b 100644 --- a/Scripts/tests/e2e/conf.js +++ b/Scripts/tests/e2e/conf.js @@ -15,16 +15,16 @@ 'phantomjs.ghostdriver.cli.args': ['--loglevel=DEBUG'] }, framework: 'jasmine', - specs: ['**/*.spec.js'], + specs: ['**/registration.spec.js', + '**/*.spec.js' + ], jasmineNodeOpts: { defaultTimeoutInterval: 50000 }, baseUrl: 'http://dev.fr8.co', params: { username: '', - password: '', - registerUsername: '', - registerPassword: '', + password: '' } }; diff --git a/Scripts/tests/e2e/pages/plans.page.js b/Scripts/tests/e2e/pages/plans.page.js index dbd2c9b6e8..ce7d3d851e 100644 --- a/Scripts/tests/e2e/pages/plans.page.js +++ b/Scripts/tests/e2e/pages/plans.page.js @@ -2,24 +2,45 @@ var PlansPage = function () { - //Login Properties + //Remove Token Properties + var manageAuthTokensButton = element(by.xpath('/html/body/div[1]/div/div[2]/div[2]/div/div/ul/li[5]/ul/li[1]/a')); + + /* Login Properties */ var emailInput = element(by.id('Email')); var passwordInput = element(by.id('Password')); var loginButton = element(by.xpath('//*[@id="loginform"]/form/div[2]/div/div/button')); - //Add Google Activity Properties + /* General Properties */ + var uiHelpers = new UIHelpers(); var addPlanButton = element(by.xpath('//*[@id="Myfr8lines"]/h3/a')); var addActivityButton = element(by.className('action-add-button-link')); - var googleActivityButton = element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div[1]/div[1]/div[1]/action-picker-panel/div/div[2]/div/div[13]/div[1]/img')); + //var addAccountButton = element(by.className('.auth-link-account')); + + /* Add Google Activity Properties */ + var googleActivityButton = element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div[1]/div[1]/div[1]/action-picker-panel/div/div[2]/div/div[11]/div[1]/img')); var googleSheetActivityButton = element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div[1]/div[1]/div[1]/action-picker-panel/div/div[2]/div/ul/li[1]/a/span')); - var uiHelpers = new UIHelpers(); + /* SalesForce Activity Properties */ + var salesForceActivityButton = element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div[1]/div[1]/div[1]/action-picker-panel/div/div[2]/div/div[15]/div[1]/img')); + var salesForceGetDataActivityButton = element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div[1]/div[1]/div[1]/action-picker-panel/div/div[2]/div/ul/li[1]/a/span')); + + /*DocuSign Activity Properties */ + var docuSignActivityButton = element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div[1]/div[1]/div[1]/action-picker-panel/div/div[2]/div/div[6]/div[1]/img')); + var docuSignMonitorActivityButton = element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div[1]/div[1]/div[1]/action-picker-panel/div/div[2]/div/ul/li[1]/a/span')); + + /* Slack Activity Properties */ + var slackActivityButton = element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div[1]/div[1]/div[1]/action-picker-panel/div/div[2]/div/div[17]/div[1]/img')); + var slackMonitorActivityButton = element(by.xpath('/html/body/div[2]/div[2]/div/div/div/div/div[1]/div[1]/div[1]/action-picker-panel/div/div[2]/div/ul/li[1]/a/span')); this.get = function () { browser.ignoreSynchronization = true; browser.get(browser.baseUrl + '/dashboard/myaccount'); }; + this.manageAuthTokens = function () { + return manageAuthTokensButton.click(); + }; + this.setEmail = function (email) { emailInput.sendKeys(email); }; @@ -56,5 +77,52 @@ var PlansPage = function () { }); }; + //this.addAccount = function () { + // //return browser.wait(EC.visibilityOf((googlePage.addAccountButton)), 5000).then(function () { + // //}); + // //return browser.wait(element(by.cssContainingText('.auth-link-account'))).then(function () { + // // return addAccountButton.click(); + // //}); + + // return uiHelpers.waitReady(addAccountButton).then(function () { + // return addAccountButton.click(); + // }); + //}; + + this.addSalesForceActivity = function () { + return uiHelpers.waitReady(salesForceActivityButton).then(function () { + return salesForceActivityButton.click(); + }); + }; + + this.getSalesForceGetDataActivity = function () { + return uiHelpers.waitReady(salesForceGetDataActivityButton).then(function () { + return salesForceGetDataActivityButton.click(); + }); + }; + + this.addDocuSignActivity = function () { + return uiHelpers.waitReady(docuSignActivityButton).then(function () { + return docuSignActivityButton.click(); + }); + }; + + this.getDocuSignActivity = function () { + return uiHelpers.waitReady(docuSignMonitorActivityButton).then(function () { + return docuSignMonitorActivityButton.click(); + }); + }; + + this.addSlackActivity = function () { + return uiHelpers.waitReady(slackActivityButton).then(function () { + return slackActivityButton.click(); + }); + }; + + this.getSlackMonitorActivity = function () { + return uiHelpers.waitReady(slackMonitorActivityButton).then(function () { + return slackMonitorActivityButton.click(); + }); + }; }; module.exports = PlansPage; \ No newline at end of file diff --git a/Scripts/tests/e2e/registration/registration.spec.js b/Scripts/tests/e2e/registration/registration.spec.js index 821d58cf0a..984943487d 100644 --- a/Scripts/tests/e2e/registration/registration.spec.js +++ b/Scripts/tests/e2e/registration/registration.spec.js @@ -12,9 +12,9 @@ describe('registration page tests', function () { it('should register', function () { return accountHelper.register().then(function () { - registrationPage.setEmail(browser.params.registerUsername); - registrationPage.setPassword(browser.params.registerPassword); - registrationPage.setConfirmPassword(browser.params.registerPassword); + registrationPage.setEmail(browser.params.username); + registrationPage.setPassword(browser.params.password); + registrationPage.setConfirmPassword(browser.params.password); registrationPage.setOrganization(); return registrationPage.register().click().then(function () { expect(browser.getCurrentUrl()).toContain('/Welcome'); diff --git a/_PowerShellScripts/Run-ProtractorTests.ps1 b/_PowerShellScripts/Run-ProtractorTests.ps1 index 593472d051..834bd2cf31 100644 --- a/_PowerShellScripts/Run-ProtractorTests.ps1 +++ b/_PowerShellScripts/Run-ProtractorTests.ps1 @@ -6,20 +6,14 @@ param( [string]$username, [Parameter(Mandatory = $true)] - [string]$password, - - [Parameter(Mandatory = $true)] - [string]$registerUsername, - - [Parameter(Mandatory = $true)] - [string]$registerPassword + [string]$password ) Write-Host 'Using endpoint -> ' $endPoint $RootDir = Split-Path -parent $PSCommandPath $projectDirectory = (get-item $RootDir ).parent.FullName $GulpProtractorCmd = "$projectDirectory\node_modules\.bin\gulp.cmd" -$arguments = "e2etests --baseUrl $endPoint --username $username --password $password --registerUsername $registerUsername --registerPassword $registerPassword" +$arguments = "e2etests --baseUrl $endPoint --username $username --password $password" Write-Host $GulpProtractorCmd $arguments $process = Start-Process $GulpProtractorCmd $arguments -NoNewWindow -Wait -PassThru Exit $process.ExitCode \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 339a740ab0..69e40f79ea 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -436,8 +436,7 @@ gulp.task('update-web-driver', function (done) { gulp.task('protractor-run', function (done) { gutil.log('Using base url: ' + argv.baseUrl); gutil.log('Testing with user: ' + argv.username); - var result = child_process.spawnSync(getProtractorBinary('protractor'), ['--baseUrl=' + argv.baseUrl, '--params.username=' + argv.username, '--params.password=' + argv.password, - '--params.registerUsername=' + argv.registerUsername, '--params.registerPassword=' + argv.registerPassword, 'Scripts\\tests\\e2e\\conf.js'], { + var result = child_process.spawnSync(getProtractorBinary('protractor'), ['--baseUrl=' + argv.baseUrl, '--params.username=' + argv.username, '--params.password=' + argv.password, 'Scripts\\tests\\e2e\\conf.js'], { stdio: 'inherit' });