View Javadoc

1   package com.atlassian.webdriver.jira.page;
2   
3   
4   import com.atlassian.pageobjects.PageBinder;
5   import com.atlassian.pageobjects.DelayedBinder;
6   import com.atlassian.pageobjects.binder.WaitUntil;
7   import com.atlassian.pageobjects.Page;
8   import com.atlassian.webdriver.AtlassianWebDriver;
9   import com.atlassian.webdriver.jira.component.header.JiraHeader;
10  import com.atlassian.webdriver.jira.component.menu.DashboardMenu;
11  import org.openqa.selenium.By;
12  
13  import javax.inject.Inject;
14  
15  /**
16   * Proveds a set of common functions that a JIRA page object can do.
17   * Such as getting the admin menu.
18   * Sets the base url for the WebDrivePage class to use which is defined in the jira-base-url system property.
19   */
20  public abstract class JiraAbstractPage implements Page
21  {
22      @Inject
23      protected PageBinder pageBinder;
24  
25      @Inject
26      protected AtlassianWebDriver driver;
27  
28      public JiraHeader getHeader()
29      {
30          return pageBinder.bind(JiraHeader.class);
31      }
32  
33      public DashboardMenu getDashboardMenu()
34      {
35          return getHeader().getDashboardMenu();
36      }
37  
38      /**
39       * The default doWait for JIRA is to wait for the footer to be located.
40       */
41      @WaitUntil
42      public final void doWait()
43      {
44          driver.waitUntilElementIsLocated(By.className("footer"));
45      }
46  
47      public boolean isLoggedIn()
48      {
49          DelayedBinder<JiraHeader> header = pageBinder.delayedBind(JiraHeader.class);
50          return header.canBind() ? header.bind().isLoggedIn() : false;
51      }
52  
53      public boolean isAdmin()
54      {
55          DelayedBinder<JiraHeader> header = pageBinder.delayedBind(JiraHeader.class);
56          return header.canBind() ? header.bind().isAdmin() : false;
57      }
58  }