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
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 }