diff --git a/eform-client/e2e/Page objects/LoginPage.ts b/eform-client/e2e/Page objects/LoginPage.ts index 06e041cffb..1990428566 100644 --- a/eform-client/e2e/Page objects/LoginPage.ts +++ b/eform-client/e2e/Page objects/LoginPage.ts @@ -1,13 +1,37 @@ -import {$, ElementFinder} from 'protractor'; +import {$, by, element, ElementFinder, ProtractorBy} from 'protractor'; +import {By} from '@angular/platform-browser'; +import {default as data} from '../data'; export class LoginPage { + // matchers public usernameInput: ElementFinder; public passwordInput: ElementFinder; public loginButton: ElementFinder; + public loginPageMainText: ElementFinder; + public loginPageSecondaryText: ElementFinder; + // elements + public loginPageMainTextMatcher: By; + public loginPageSecondaryTextMatcher: By; + public loginPageImageMatcher: By; + + // login method, used on Login Page + public login(): void { + this.usernameInput.clear(); + this.passwordInput.clear(); + this.usernameInput.sendKeys(data.login); + this.passwordInput.sendKeys(data.password); + this.loginButton.click(); + } + constructor() { this.usernameInput = $('#username'); this.passwordInput = $('#password'); this.loginButton = $('button.btn-success'); + this.loginPageMainTextMatcher = by.css('#loginPageMainText'); + this.loginPageSecondaryTextMatcher = by.css('#loginPageSecondaryText'); + this.loginPageImageMatcher = by.css('#loginPageImage'); + this.loginPageMainText = element(this.loginPageMainTextMatcher); + this.loginPageSecondaryText = element(this.loginPageSecondaryTextMatcher); } } diff --git a/eform-client/e2e/Page objects/SettingsPage.ts b/eform-client/e2e/Page objects/SettingsPage.ts index 7d91d621e1..dd24e0c377 100644 --- a/eform-client/e2e/Page objects/SettingsPage.ts +++ b/eform-client/e2e/Page objects/SettingsPage.ts @@ -20,18 +20,31 @@ export class SettingsPage { public saveButton: ElementFinder; public headerMainText: ElementFinder; public headerSecondaryText: ElementFinder; + public signOutDropdown: ElementFinder; + public signOutButton: ElementFinder; // helper functions public saveAndRefresh(): void { this.saveButton.click(); - browser.wait(protractor.ExpectedConditions.elementToBeClickable(this.saveButton)) + browser.wait(protractor.ExpectedConditions.elementToBeClickable(this.saveButton)); browser.refresh(); browser.waitForAngular(); } + public signOut(): void { + this.signOutDropdown.click(); + this.signOutButton.click(); + browser.waitForAngular(); + } + + public signInAndGoToSettings(): void { + + } + constructor() { // parts of settings this.SiteHeader = new SiteHeader(); + this.LoginPage = new LoginPage(); // matchers this.headerImageMatcher = by.xpath('//*[@id="header_full_top"]/div/div/div[1]/img'); this.secondaryTextHeaderMatcher = by.css('#secondary-header-text'); @@ -40,6 +53,8 @@ export class SettingsPage { this.saveButton = $('button.btn-ar.btn-danger'); this.headerMainText = element(this.mainTextHeaderMatcher); this.headerSecondaryText = element(this.secondaryTextHeaderMatcher); + this.signOutDropdown = $('#sign-out-dropdown'); + this.signOutButton = $('#sign-out'); } } diff --git a/eform-client/e2e/Page objects/SettingsPageObjects/LoginPage.ts b/eform-client/e2e/Page objects/SettingsPageObjects/LoginPage.ts index 6eba66dd5c..73563b909c 100644 --- a/eform-client/e2e/Page objects/SettingsPageObjects/LoginPage.ts +++ b/eform-client/e2e/Page objects/SettingsPageObjects/LoginPage.ts @@ -1,3 +1,27 @@ +import {$, browser, ElementFinder} from 'protractor'; + export class LoginPage { + public mainTextInput: ElementFinder; + public secondaryTextInput: ElementFinder; + public mainTextHide: ElementFinder; + public secondaryTextHide: ElementFinder; + public loginPageImageHideButton: ElementFinder; + public resetButton: ElementFinder; + + public resetAndRefresh(): void { + browser.sleep(2000); + this.resetButton.click(); + browser.refresh(); + browser.waitForAngularEnabled(); + } + + constructor() { + this.mainTextInput = $('#mainTextLoginPage'); + this.secondaryTextInput = $('#secondaryTextLoginPage'); + this.mainTextHide = $('#mainTextLoginPageHide'); + this.secondaryTextHide = $('#secondaryTextLoginPageHide'); + this.loginPageImageHideButton = $('#imageLoginPageHide'); + this.resetButton = $('#loginPageReset'); + } } diff --git a/eform-client/e2e/Page objects/SettingsPageObjects/SiteHeader.ts b/eform-client/e2e/Page objects/SettingsPageObjects/SiteHeader.ts index 698f38b0d7..230d06c0db 100644 --- a/eform-client/e2e/Page objects/SettingsPageObjects/SiteHeader.ts +++ b/eform-client/e2e/Page objects/SettingsPageObjects/SiteHeader.ts @@ -7,7 +7,6 @@ export class SiteHeader { public secondaryTextInput: ElementFinder; public hideMainTextButton: ElementFinder; public hideSecondaryTextButton: ElementFinder; - public secondaryTextHeader: ElementFinder; public resetAndRefresh(): void { browser.sleep(2000); diff --git a/eform-client/e2e/data.ts b/eform-client/e2e/data.ts index 40a99d74d0..cfd9a88417 100644 --- a/eform-client/e2e/data.ts +++ b/eform-client/e2e/data.ts @@ -10,7 +10,16 @@ export default { mainTextSample: 'Sample main text', secondaryTextSample: 'Sample secondary text' } - + }, + LoginPageSettings: { + defaultSettings: { + loginPageMainText: 'Microting eForm', + loginPageSecondaryText: 'No more paper-forms and back-office data entry' + }, + customSettings: { + loginPageMainTextSample: 'Sample login page main text', + loginPageSecondaryTextSample: 'Sample login page secondary text' + } } }; diff --git a/eform-client/e2e/settings.site-header.e2e-spec.ts b/eform-client/e2e/settings.site-header.e2e-spec.ts index 7f7f09ec4a..457a5192c1 100644 --- a/eform-client/e2e/settings.site-header.e2e-spec.ts +++ b/eform-client/e2e/settings.site-header.e2e-spec.ts @@ -12,15 +12,16 @@ const settingsPage: SettingsPage = new SettingsPage(); beforeAll((done) => { browser.get('/'); - loginPage.usernameInput.sendKeys(data.login); - loginPage.passwordInput.sendKeys(data.password); - loginPage.loginButton.click(); + loginPage.login(); mainPage.advancedButton.click(); mainPage.settingsButton.click(); done(); }); +afterAll(function () { + browser.close(); +}); -describe('Reset button in Settings', function () { +describe('Reset button in Site header section of Settings', function () { beforeAll(function (done) { settingsPage.SiteHeader.resetButton.click(); diff --git a/eform-client/package.json b/eform-client/package.json index 4d4c3d7ae1..f0cd90c2b5 100644 --- a/eform-client/package.json +++ b/eform-client/package.json @@ -46,7 +46,6 @@ "ngx-gallery": "^3.1.4", "pnotify": "^3.2.0", "rxjs": "^5.4.2", - "selenium-standalone-jar": "^3.0.1", "trumbowyg": "^2.5.1", "ts-helpers": "^1.1.1", "wowjs": "^1.1.3", @@ -74,7 +73,6 @@ "phantomjs-prebuilt": "^2.1.16", "protractor": "~5.1.0", "run-sequence": "^2.2.1", - "selenium-server-standalone-jar": "^3.8.1", "ts-node": "~2.0.0", "tslint": "~4.5.0", "typescript": "~2.2.0" diff --git a/eform-client/protractor.conf.js b/eform-client/protractor.conf.js index d89d7d8eb5..721da58a7d 100644 --- a/eform-client/protractor.conf.js +++ b/eform-client/protractor.conf.js @@ -11,7 +11,7 @@ exports.config = { capabilities: { 'browserName': 'chrome' }, - // directConnect: false, + directConnect: true, baseUrl: 'http://localhost:4200/', framework: 'jasmine', jasmineNodeOpts: { diff --git a/eform-client/src/app/components/auth/auth.component.html b/eform-client/src/app/components/auth/auth.component.html index 7bb5af9bdb..c4ea0628d6 100644 --- a/eform-client/src/app/components/auth/auth.component.html +++ b/eform-client/src/app/components/auth/auth.component.html @@ -6,11 +6,11 @@
-

{{loginPageSettings.mainText}}

-

{{loginPageSettings.secondaryText}}

+

{{loginPageSettings.mainText}}

+

{{loginPageSettings.secondaryText}}

- +
diff --git a/eform-client/src/app/components/navigation/navigation.component.html b/eform-client/src/app/components/navigation/navigation.component.html index c36ca99fe7..a261640f38 100644 --- a/eform-client/src/app/components/navigation/navigation.component.html +++ b/eform-client/src/app/components/navigation/navigation.component.html @@ -3,7 +3,7 @@