View Javadoc

1   package com.atlassian.webdriver.jira.page.user;
2   
3   import com.atlassian.pageobjects.binder.Init;
4   import com.atlassian.webdriver.jira.page.JiraAdminAbstractPage;
5   import com.atlassian.webdriver.utils.by.ByJquery;
6   import com.atlassian.webdriver.utils.Check;
7   import org.openqa.selenium.WebElement;
8   import org.openqa.selenium.support.FindBy;
9   
10  import java.util.HashSet;
11  import java.util.Set;
12  
13  /**
14   * @since 2.0
15   */
16  public class DeleteUserPage extends JiraAdminAbstractPage
17  {
18      private static String URI = "/secure/admin/user/DeleteUser.jspa";
19  
20      private static String ERROR_SELECTOR = ".formErrors ul li";
21  
22      @FindBy (id = "numberOfFilters")
23      private WebElement numberOfSharedFiltersElement;
24  
25      @FindBy (id = "numberOfOtherFavouritedFilters")
26      private WebElement numberOfOtherSharedFiltersElement;
27  
28      @FindBy (id = "numberOfNonPrivatePortalPages")
29      private WebElement numberOfSharedDashboardsElement;
30  
31      @FindBy (id = "numberOfOtherFavouritedPortalPages")
32      private WebElement numberOfOtherFavoriteDashboardsElement;
33  
34      @FindBy (id = "delete_submit")
35      private WebElement deleteUserButton;
36  
37      @FindBy (id = "cancelButton")
38      private WebElement cancelDeleteUserButton;
39  
40      private WebElement numberOfAssignedIssuesElement;
41      private WebElement numberOfReportedIssuesElement;
42  
43      private Set<String> errors = new HashSet <String>();
44  
45      public String getUrl()
46      {
47          return URI;
48      }
49  
50      @Init
51      public void parsePage()
52      {
53          //Check for errors on the page
54          if (Check.elementExists(ByJquery.$(ERROR_SELECTOR), driver))
55          {
56              for (WebElement el : driver.findElements(ByJquery.$(ERROR_SELECTOR)))
57              {
58                  errors.add(el.getText());
59              }
60          }
61  
62          numberOfAssignedIssuesElement = driver.findElement(ByJquery.$("td.fieldLabelArea:contains(Assigned Issues)").siblings("td"));
63          numberOfReportedIssuesElement = driver.findElement(ByJquery.$("td.fieldLabelArea:contains(Reported Issues)").siblings("td"));
64      }
65  
66      public boolean hasErrors()
67      {
68          return !errors.isEmpty();
69      }
70  
71      public boolean hasError(String errorString)
72      {
73          return errors.contains(errorString);
74      }
75  
76      public UserBrowserPage deleteUser()
77      {
78          deleteUserButton.click();
79  
80          return pageBinder.bind(UserBrowserPage.class);
81      }
82  
83      public DeleteUserPage deleteUserExpectingError()
84      {
85          deleteUserButton.click();
86  
87          return pageBinder.bind(DeleteUserPage.class);
88      }
89  
90      public int getNumberOfSharedFiltersElement()
91      {
92          return getIntValue(numberOfSharedFiltersElement);
93      }
94  
95      public int getNumberOfOtherSharedFiltersElement()
96      {
97          return getIntValue(numberOfOtherSharedFiltersElement);
98      }
99  
100     public int getNumberOfSharedDashboardsElement()
101     {
102         return getIntValue(numberOfSharedDashboardsElement);
103     }
104 
105     public int getNumberOfOtherFavoriteDashboardsElement()
106     {
107         return getIntValue(numberOfOtherFavoriteDashboardsElement);
108     }
109 
110     public int getDeleteUserButton()
111     {
112         return getIntValue(deleteUserButton);
113     }
114 
115     public int getCancelDeleteUserButton()
116     {
117         return getIntValue(cancelDeleteUserButton);
118     }
119 
120     public int getNumberOfAssignedIssuesElement()
121     {
122         return getIntValue(numberOfAssignedIssuesElement);
123     }
124 
125     public int getNumberOfReportedIssuesElement()
126     {
127         return getIntValue(numberOfReportedIssuesElement);
128     }
129 
130     private int getIntValue(WebElement element)
131     {
132         return Integer.parseInt(element.getText());
133     }
134 }