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.page.HomePage;
9   import com.atlassian.webdriver.AtlassianWebDriver;
10  
11  import org.openqa.selenium.By;
12  
13  /**
14   * Represents the header of the RefApp
15   */
16  public class RefappHeader implements Header
17  {
18      private static final By LOGIN = By.id("login");
19  
20      @Inject
21      protected AtlassianWebDriver driver;
22  
23      @Inject
24      protected PageBinder pageBinder;
25  
26      public boolean isLoggedIn()
27      {
28          return driver.findElement(By.id("login")).getText().equals("Logout");
29      }
30  
31      public boolean isAdmin()
32      {
33          return isLoggedIn() && driver.findElement(By.id("user")).getText().contains("(Sysadmin)");
34      }
35  
36      public <M extends Page> M logout(Class<M> nextPage)
37      {
38          if (isLoggedIn()) {
39              driver.findElement(LOGIN).click();
40          }
41          return HomePage.class.isAssignableFrom(nextPage) ? pageBinder.bind(nextPage) : pageBinder.navigateToAndBind(nextPage);
42      }
43  }