View Javadoc

1   package com.atlassian.pageobjects.elements.test.pageobjects.component;
2   
3   import javax.inject.Inject;
4   
5   import com.atlassian.pageobjects.Page;
6   import com.atlassian.pageobjects.PageBinder;
7   import com.atlassian.pageobjects.component.Header;
8   import com.atlassian.pageobjects.component.WebSudoBanner;
9   import com.atlassian.pageobjects.page.HomePage;
10  import com.atlassian.webdriver.AtlassianWebDriver;
11  
12  import org.apache.commons.lang.NotImplementedException;
13  import org.openqa.selenium.By;
14  
15  /**
16   * Represents the header of the RefApp
17   */
18  public class RefappHeader implements Header
19  {
20      private static final By LOGIN = By.id("login");
21  
22      @Inject
23      protected AtlassianWebDriver driver;
24  
25      @Inject
26      protected PageBinder pageBinder;
27  
28      public boolean isLoggedIn()
29      {
30          return driver.findElement(By.id("login")).getText().equals("Logout");
31      }
32  
33      public boolean isAdmin()
34      {
35          return isLoggedIn() && driver.findElement(By.id("user")).getText().contains("(Sysadmin)");
36      }
37  
38      public <M extends Page> M logout(Class<M> nextPage)
39      {
40          if (isLoggedIn()) {
41              driver.findElement(LOGIN).click();
42          }
43          return HomePage.class.isAssignableFrom(nextPage) ? pageBinder.bind(nextPage) : pageBinder.navigateToAndBind(nextPage);
44      }
45  
46      public WebSudoBanner getWebSudoBanner()
47      {
48          throw new NotImplementedException();
49      }
50  }