1 package com.atlassian.webdriver.jira.page;
2
3 import com.atlassian.pageobjects.Page;
4 import com.atlassian.pageobjects.page.HomePage;
5 import com.atlassian.pageobjects.page.LoginPage;
6 import org.openqa.selenium.WebElement;
7 import org.openqa.selenium.support.FindBy;
8 import org.openqa.selenium.support.How;
9
10
11
12
13 public class JiraLoginPage extends JiraAbstractPage implements LoginPage
14 {
15 private static final String URI = "/login.jsp";
16
17 @FindBy (name = "os_username")
18 private WebElement usernameField;
19
20 @FindBy (name = "os_password")
21 private WebElement passwordField;
22
23 @FindBy (name = "os_cookie")
24 private WebElement rememberMeTickBox;
25
26 @FindBy (how = How.ID_OR_NAME, using = "login")
27 private WebElement loginButton;
28
29 public String getUrl()
30 {
31 return URI;
32 }
33
34 public <M extends Page> M login(String username, String password, Class<M> nextPage)
35 {
36 return login(username, password, false, nextPage);
37 }
38
39 public <M extends Page> M loginAsSysAdmin(Class<M> nextPage)
40 {
41 return login("admin", "admin", nextPage);
42 }
43
44 public <M extends Page> M login(String username, String password, boolean rememberMe, Class<M> nextPage)
45 {
46 usernameField.sendKeys(username);
47 passwordField.sendKeys(password);
48
49 if (rememberMe)
50 {
51 rememberMeTickBox.click();
52 }
53
54 loginButton.click();
55
56 return HomePage.class.isAssignableFrom(nextPage) ? pageBinder.bind(nextPage) : pageBinder.navigateToAndBind(nextPage);
57 }
58
59
60 }