View Javadoc

1   package com.atlassian.webdriver.jira.component.menu;
2   
3   import com.atlassian.pageobjects.PageBinder;
4   import com.atlassian.pageobjects.binder.Init;
5   import com.atlassian.webdriver.jira.component.ClickableLink;
6   import com.atlassian.webdriver.jira.component.WebDriverLink;
7   import com.atlassian.webdriver.jira.page.LicenseDetailsPage;
8   import com.atlassian.webdriver.jira.page.PluginsPage;
9   import com.atlassian.webdriver.jira.page.ProjectsViewPage;
10  import com.atlassian.webdriver.jira.page.user.UserBrowserPage;
11  import com.atlassian.webdriver.utils.by.ByJquery;
12  import org.openqa.selenium.WebElement;
13  import org.openqa.selenium.support.FindBy;
14  
15  import javax.inject.Inject;
16  
17  /**
18   * Object for interacting with the Admin menu in the JIRA header.
19   * TODO: extend for all available links.
20   */
21  public class AdminMenu
22  {
23  
24      @Inject
25      PageBinder pageBinder;
26  
27      @FindBy(id = "plugins_lnk")
28      private WebElement pluginsPageLink;
29  
30      @ClickableLink(id = "plugins_lnk", nextPage = PluginsPage.class)
31      WebDriverLink<PluginsPage> pluginsLink;
32  
33      @ClickableLink(id = "license_details_lnk", nextPage = LicenseDetailsPage.class)
34      WebDriverLink<LicenseDetailsPage> licenseDetailsLink;
35  
36      @ClickableLink(id = "user_browser_lnk", nextPage = UserBrowserPage.class)
37      WebDriverLink<UserBrowserPage> userBrowserLink;
38  
39      @ClickableLink(id = "view_projects_lnk", nextPage = ProjectsViewPage.class)
40      WebDriverLink<ProjectsViewPage> projectsViewPage;
41  
42      private AuiDropdownMenu adminMenu;
43  
44      @Init
45      public void initialise()
46      {
47          adminMenu = pageBinder.bind(AuiDropdownMenu.class, ByJquery.$("#admin_link").parent("li"));
48      }
49  
50      public PluginsPage gotoPluginsPage()
51      {
52          return pluginsLink.activate();
53      }
54  
55      public LicenseDetailsPage gotoLicenseDetailsPage()
56      {
57          return licenseDetailsLink.activate();
58      }
59  
60      public UserBrowserPage gotoUserBrowserPage()
61      {
62          return userBrowserLink.activate();
63      }
64  
65      public ProjectsViewPage gotoProjectsPage()
66      {
67          return projectsViewPage.activate();
68      }
69  
70      public AdminMenu open()
71      {
72          adminMenu.open();
73          return this;
74      }
75  
76      public boolean isOpen()
77      {
78          return adminMenu.isOpen();
79      }
80  
81      public AdminMenu close()
82      {
83          adminMenu.close();
84          return this;
85      }
86  }