Skip to content

Commit 2a69ea7

Browse files
authored
Merge pull request #72 from Gid733/master
Small fixes and changes for tests
2 parents 5ca2ea3 + 8ab0019 commit 2a69ea7

File tree

10 files changed

+86
-16
lines changed

10 files changed

+86
-16
lines changed
Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,37 @@
1-
import {$, ElementFinder} from 'protractor';
1+
import {$, by, element, ElementFinder, ProtractorBy} from 'protractor';
2+
import {By} from '@angular/platform-browser';
3+
import {default as data} from '../data';
24

35
export class LoginPage {
6+
// matchers
47
public usernameInput: ElementFinder;
58
public passwordInput: ElementFinder;
69
public loginButton: ElementFinder;
10+
public loginPageMainText: ElementFinder;
11+
public loginPageSecondaryText: ElementFinder;
12+
// elements
13+
public loginPageMainTextMatcher: By;
14+
public loginPageSecondaryTextMatcher: By;
15+
public loginPageImageMatcher: By;
16+
17+
// login method, used on Login Page
18+
public login(): void {
19+
this.usernameInput.clear();
20+
this.passwordInput.clear();
21+
this.usernameInput.sendKeys(data.login);
22+
this.passwordInput.sendKeys(data.password);
23+
this.loginButton.click();
24+
}
25+
726

827
constructor() {
928
this.usernameInput = $('#username');
1029
this.passwordInput = $('#password');
1130
this.loginButton = $('button.btn-success');
31+
this.loginPageMainTextMatcher = by.css('#loginPageMainText');
32+
this.loginPageSecondaryTextMatcher = by.css('#loginPageSecondaryText');
33+
this.loginPageImageMatcher = by.css('#loginPageImage');
34+
this.loginPageMainText = element(this.loginPageMainTextMatcher);
35+
this.loginPageSecondaryText = element(this.loginPageSecondaryTextMatcher);
1236
}
1337
}

eform-client/e2e/Page objects/SettingsPage.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,31 @@ export class SettingsPage {
2020
public saveButton: ElementFinder;
2121
public headerMainText: ElementFinder;
2222
public headerSecondaryText: ElementFinder;
23+
public signOutDropdown: ElementFinder;
24+
public signOutButton: ElementFinder;
2325

2426
// helper functions
2527
public saveAndRefresh(): void {
2628
this.saveButton.click();
27-
browser.wait(protractor.ExpectedConditions.elementToBeClickable(this.saveButton))
29+
browser.wait(protractor.ExpectedConditions.elementToBeClickable(this.saveButton));
2830
browser.refresh();
2931
browser.waitForAngular();
3032
}
3133

34+
public signOut(): void {
35+
this.signOutDropdown.click();
36+
this.signOutButton.click();
37+
browser.waitForAngular();
38+
}
39+
40+
public signInAndGoToSettings(): void {
41+
42+
}
43+
3244
constructor() {
3345
// parts of settings
3446
this.SiteHeader = new SiteHeader();
47+
this.LoginPage = new LoginPage();
3548
// matchers
3649
this.headerImageMatcher = by.xpath('//*[@id="header_full_top"]/div/div/div[1]/img');
3750
this.secondaryTextHeaderMatcher = by.css('#secondary-header-text');
@@ -40,6 +53,8 @@ export class SettingsPage {
4053
this.saveButton = $('button.btn-ar.btn-danger');
4154
this.headerMainText = element(this.mainTextHeaderMatcher);
4255
this.headerSecondaryText = element(this.secondaryTextHeaderMatcher);
56+
this.signOutDropdown = $('#sign-out-dropdown');
57+
this.signOutButton = $('#sign-out');
4358

4459
}
4560
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
import {$, browser, ElementFinder} from 'protractor';
2+
13
export class LoginPage {
4+
public mainTextInput: ElementFinder;
5+
public secondaryTextInput: ElementFinder;
6+
public mainTextHide: ElementFinder;
7+
public secondaryTextHide: ElementFinder;
8+
public loginPageImageHideButton: ElementFinder;
9+
public resetButton: ElementFinder;
10+
11+
public resetAndRefresh(): void {
12+
browser.sleep(2000);
13+
this.resetButton.click();
14+
browser.refresh();
15+
browser.waitForAngularEnabled();
16+
}
17+
18+
constructor() {
19+
this.mainTextInput = $('#mainTextLoginPage');
20+
this.secondaryTextInput = $('#secondaryTextLoginPage');
21+
this.mainTextHide = $('#mainTextLoginPageHide');
22+
this.secondaryTextHide = $('#secondaryTextLoginPageHide');
23+
this.loginPageImageHideButton = $('#imageLoginPageHide');
24+
this.resetButton = $('#loginPageReset');
225

26+
}
327
}

eform-client/e2e/Page objects/SettingsPageObjects/SiteHeader.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ export class SiteHeader {
77
public secondaryTextInput: ElementFinder;
88
public hideMainTextButton: ElementFinder;
99
public hideSecondaryTextButton: ElementFinder;
10-
public secondaryTextHeader: ElementFinder;
1110

1211
public resetAndRefresh(): void {
1312
browser.sleep(2000);

eform-client/e2e/data.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,16 @@ export default {
1010
mainTextSample: 'Sample main text',
1111
secondaryTextSample: 'Sample secondary text'
1212
}
13-
13+
},
14+
LoginPageSettings: {
15+
defaultSettings: {
16+
loginPageMainText: 'Microting eForm',
17+
loginPageSecondaryText: 'No more paper-forms and back-office data entry'
18+
},
19+
customSettings: {
20+
loginPageMainTextSample: 'Sample login page main text',
21+
loginPageSecondaryTextSample: 'Sample login page secondary text'
22+
}
1423
}
1524

1625
};

eform-client/e2e/settings.site-header.e2e-spec.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@ const settingsPage: SettingsPage = new SettingsPage();
1212

1313
beforeAll((done) => {
1414
browser.get('/');
15-
loginPage.usernameInput.sendKeys(data.login);
16-
loginPage.passwordInput.sendKeys(data.password);
17-
loginPage.loginButton.click();
15+
loginPage.login();
1816
mainPage.advancedButton.click();
1917
mainPage.settingsButton.click();
2018
done();
2119
});
20+
afterAll(function () {
21+
browser.close();
22+
});
2223

23-
describe('Reset button in Settings', function () {
24+
describe('Reset button in Site header section of Settings', function () {
2425

2526
beforeAll(function (done) {
2627
settingsPage.SiteHeader.resetButton.click();

eform-client/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
"ngx-gallery": "^3.1.4",
4747
"pnotify": "^3.2.0",
4848
"rxjs": "^5.4.2",
49-
"selenium-standalone-jar": "^3.0.1",
5049
"trumbowyg": "^2.5.1",
5150
"ts-helpers": "^1.1.1",
5251
"wowjs": "^1.1.3",
@@ -74,7 +73,6 @@
7473
"phantomjs-prebuilt": "^2.1.16",
7574
"protractor": "~5.1.0",
7675
"run-sequence": "^2.2.1",
77-
"selenium-server-standalone-jar": "^3.8.1",
7876
"ts-node": "~2.0.0",
7977
"tslint": "~4.5.0",
8078
"typescript": "~2.2.0"

eform-client/protractor.conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ exports.config = {
1111
capabilities: {
1212
'browserName': 'chrome'
1313
},
14-
// directConnect: false,
14+
directConnect: true,
1515
baseUrl: 'http://localhost:4200/',
1616
framework: 'jasmine',
1717
jasmineNodeOpts: {

eform-client/src/app/components/auth/auth.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
<div class="panel-body">
77
<div class="row" *ngIf="loginPageSettings.mainTextVisible || loginPageSettings.secondaryTextVisible || loginPageSettings.imageLinkVisible">
88
<div class="col-md-8 col-xs-8">
9-
<p class="p-header-wrapper p-font" *ngIf="loginPageSettings.mainTextVisible"><strong>{{loginPageSettings.mainText}}</strong></p>
10-
<p class="p-font p-description" *ngIf="loginPageSettings.secondaryTextVisible">{{loginPageSettings.secondaryText}}</p>
9+
<p class="p-header-wrapper p-font" *ngIf="loginPageSettings.mainTextVisible"><strong id="loginPageMainText">{{loginPageSettings.mainText}}</strong></p>
10+
<p class="p-font p-description" id="loginPageSecondaryText" *ngIf="loginPageSettings.secondaryTextVisible">{{loginPageSettings.secondaryText}}</p>
1111
</div>
1212
<div class="col-md-4 col-xs-4" *ngIf="loginPageSettings.imageLinkVisible">
13-
<img class="img-responsive img-wrapper" [src]="loginImage" />
13+
<img id="loginPageImage" class="img-responsive img-wrapper" [src]="loginImage" />
1414
</div>
1515
</div>
1616

eform-client/src/app/components/navigation/navigation.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div class="pull-right">
44
<ul class="nav navbar-nav">
55
<li class="dropdown">
6-
<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0);">{{userInfo.firstName || ''}}
6+
<a id="sign-out-dropdown" class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0);">{{userInfo.firstName || ''}}
77
{{userInfo.lastName || 'name'}}</a>
88
<ul class="dropdown-menu dropdown-menu-right">
99
<li *ngIf="userInfo.role == 'admin'">
@@ -13,7 +13,7 @@
1313
<a routerLink="/admin/change-password" routerLinkActive="active">Change password</a>
1414
</li>
1515
<li>
16-
<a (click)="signOut()">Sign out</a>
16+
<a (click)="signOut()" id="sign-out">Sign out</a>
1717
</li>
1818
</ul>
1919
</li>

0 commit comments

Comments
 (0)