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