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 org.openqa.selenium.By;
6 import org.openqa.selenium.WebElement;
7 import org.openqa.selenium.support.FindBy;
8
9 import java.util.HashSet;
10 import java.util.List;
11 import java.util.Set;
12
13
14
15
16 public class AddUserPage extends JiraAdminAbstractPage
17 {
18 private static String URI = "/secure/admin/user/AddUser!default.jspa";
19
20 @FindBy (name ="username")
21 private WebElement usernameField;
22
23 @FindBy (name = "password")
24 private WebElement passwordField;
25
26 @FindBy (name = "confirm")
27 private WebElement confirmPasswordField;
28
29 @FindBy (name = "fullname")
30 private WebElement fullnameField;
31
32 @FindBy (name = "email")
33 private WebElement emailField;
34
35 @FindBy (name = "sendEmail")
36 private WebElement sendEmailCheckbox;
37
38 @FindBy (id = "create_submit")
39 private WebElement createButton;
40
41 @FindBy (id = "cancelButton")
42 private WebElement cancelButton;
43
44 private Set<String> errors = new HashSet<String>();
45
46 public String getUrl()
47 {
48 return URI;
49 }
50
51 @Init
52 public void checkForErrors()
53 {
54 List<WebElement> errorElements = driver.findElements(By.className("errMsg"));
55
56 for (WebElement errEl : errorElements)
57 {
58 errors.add(errEl.getText());
59 }
60 }
61
62 public AddUserPage setUsername(String username)
63 {
64 usernameField.sendKeys(username);
65 return this;
66 }
67
68 public AddUserPage setPassword(String password)
69 {
70 passwordField.sendKeys(password);
71 return this;
72 }
73
74 public AddUserPage setConfirmPassword(String password)
75 {
76 confirmPasswordField.sendKeys(password);
77 return this;
78 }
79
80 public AddUserPage setFullname(String fullname)
81 {
82 fullnameField.sendKeys(fullname);
83 return this;
84 }
85
86 public AddUserPage setEmail(String email)
87 {
88 emailField.sendKeys(email);
89
90 return this;
91 }
92
93 public AddUserPage sendPasswordEmail(boolean sendPasswordEmail)
94 {
95 if (sendEmailCheckbox.isSelected())
96 {
97 if (!sendPasswordEmail)
98 {
99 sendEmailCheckbox.click();
100 }
101 }
102 else
103 {
104 if (sendPasswordEmail)
105 {
106 sendEmailCheckbox.click();
107 }
108 }
109
110 return this;
111 }
112
113 public ViewUserPage createUser()
114 {
115 createButton.click();
116
117 return pageBinder.bind(ViewUserPage.class);
118 }
119
120 public AddUserPage createUserExpectingError()
121 {
122 createButton.click();
123
124 return pageBinder.bind(AddUserPage.class);
125 }
126
127 public UserBrowserPage cancelCreateUser()
128 {
129 cancelButton.click();
130
131 return pageBinder.bind(UserBrowserPage.class);
132 }
133
134 public boolean hasError()
135 {
136 return errors.size() > 0;
137 }
138 }