View Javadoc
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       * Logins into refapp.
33       *
34       * @param bypassWebsudo if true, user will not have to deal with websudo screen again until the automatically given privilege is expired
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  }