Skip to content

Commit f35e8ad

Browse files
committed
Added login test
1 parent 7bb97b0 commit f35e8ad

File tree

5 files changed

+65
-2
lines changed

5 files changed

+65
-2
lines changed

src/main/java/selenium/pageobject/HomePage.java

+11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package selenium.pageobject;
22

3+
import org.openqa.selenium.WebElement;
4+
import org.openqa.selenium.support.FindBy;
35
import selenium.driver.Driver;
46
import org.openqa.selenium.WebDriver;
57

@@ -10,7 +12,16 @@ public HomePage(WebDriver driver) {
1012
super(driver);
1113
}
1214

15+
@FindBy(css = "a[href='/login']")
16+
private WebElement loginPageLink;
17+
1318
public String getPageTitle() {
1419
return getDriver().getTitle();
1520
}
21+
22+
public void goToLoginPage() {
23+
24+
waitForElement(loginPageLink);
25+
loginPageLink.click();
26+
}
1627
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package selenium.pageobject;
2+
3+
import org.openqa.selenium.WebDriver;
4+
import org.openqa.selenium.WebElement;
5+
import org.openqa.selenium.support.FindBy;
6+
import selenium.driver.Driver;
7+
8+
public class LoginPage extends Driver {
9+
10+
public LoginPage(WebDriver driver) {
11+
super(driver);
12+
}
13+
14+
@FindBy(id = "username")
15+
private WebElement usernameField;
16+
17+
@FindBy(id = "password")
18+
private WebElement passwordField;
19+
20+
@FindBy(css = "button[type='submit']")
21+
private WebElement submitButton;
22+
23+
public void login(String username, String password) {
24+
usernameField.sendKeys(username);
25+
passwordField.sendKeys(password);
26+
submitButton.click();
27+
}
28+
29+
public String getCurrentUrl() {
30+
return getDriver().getCurrentUrl();
31+
}
32+
}

src/test/java/selenium/testdata/properties/User.java

+5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
public class User {
66
private String email;
7+
private String username;
78
private String password;
89
private String gender;
910
private String firstname;
@@ -35,6 +36,10 @@ public void setEmail(final String email) {
3536
this.email = email;
3637
}
3738

39+
public String getUsername() {return username; }
40+
41+
public void setUsername(final String username) { this.username = username; }
42+
3843
public String getGender() {
3944
return gender;
4045
}

src/test/java/selenium/tests/SimpleTestExamples.java

+15-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.testng.annotations.Test;
77
import selenium.pageobject.HomePage;
88
import selenium.context.Base;
9+
import selenium.pageobject.LoginPage;
910
import selenium.testdata.properties.User;
1011

1112
import static org.hamcrest.MatcherAssert.assertThat;
@@ -17,9 +18,22 @@ public class SimpleTestExamples extends Base {
1718
@Description("Checks if the page title is correct")
1819
public void pageTitleTest() {
1920

21+
HomePage homePage = new HomePage(Driver.getDriver());
22+
assertThat(homePage.getPageTitle(), equalTo(LocaleText.get("homePage.title")));
23+
}
24+
25+
@Test(description = "Authentication test")
26+
@Description("Checks if user is able to log in")
27+
public void loginTest() {
28+
2029
User user = fileLoaderService.getUser("user");
2130

2231
HomePage homePage = new HomePage(Driver.getDriver());
23-
assertThat(homePage.getPageTitle(), equalTo(LocaleText.get("homePage.title")));
32+
homePage.goToLoginPage();
33+
34+
LoginPage loginPage = new LoginPage(Driver.getDriver());
35+
loginPage.login(user.getUsername(), user.getPassword());
36+
37+
assertThat(loginPage.getCurrentUrl(), equalTo(appUrl + "secure"));
2438
}
2539
}

src/test/resources/testdata/user/user_com.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{
22
"gender": "MALE",
3+
"username": "tomsmith",
34
"firstname": "Selenium",
45
"lastname": "TestUser",
56
"telephone": "0123456789",
67
"email": "[email protected]",
7-
"password": "123456",
8+
"password": "SuperSecretPassword!",
89
"address": "Am Treptower Park 28",
910
"zip": "12435",
1011
"city": "Berlin",

0 commit comments

Comments
 (0)