1 package com.atlassian.webdriver.refapp.page;
2
3 import com.atlassian.pageobjects.Page;
4 import com.atlassian.pageobjects.PageBinder;
5 import com.atlassian.pageobjects.page.HomePage;
6 import com.atlassian.pageobjects.page.LoginPage;
7 import org.openqa.selenium.By;
8 import org.openqa.selenium.WebElement;
9
10 import javax.inject.Inject;
11
12
13
14
15 public class RefappLoginPage extends RefappAbstractPage implements LoginPage {
16 @Inject
17 PageBinder pageBinder;
18
19 public String getUrl() {
20 return "/plugins/servlet/login";
21 }
22
23 public <M extends Page> M login(String username, String password, Class<M> nextPage) {
24 driver.findElement(By.name("os_username")).sendKeys(username);
25 driver.findElement(By.name("os_password")).sendKeys(password);
26 driver.findElement(By.id("os_login")).submit();
27
28 return HomePage.class.isAssignableFrom(nextPage) ? pageBinder.bind(nextPage) : pageBinder.navigateToAndBind(nextPage);
29 }
30
31
32
33
34
35
36 public <M extends Page> M login(String username, String password, boolean bypassWebsudo, Class<M> nextPage) {
37 driver.findElement(By.name("os_username")).sendKeys(username);
38 driver.findElement(By.name("os_password")).sendKeys(password);
39 WebElement webSudoCheckBox = driver.findElement(By.name("os_websudo"));
40
41 if (bypassWebsudo) {
42 if (!webSudoCheckBox.isSelected()) {
43 webSudoCheckBox.click();
44 }
45 } else if (webSudoCheckBox.isSelected()) {
46 webSudoCheckBox.click();
47 }
48
49 driver.findElement(By.id("os_login")).submit();
50
51 return HomePage.class.isAssignableFrom(nextPage) ? pageBinder.bind(nextPage) : pageBinder.navigateToAndBind(nextPage);
52 }
53
54 public <M extends Page> M loginAsSysAdmin(Class<M> nextPage) {
55 return login("admin", "admin", nextPage);
56 }
57
58 }