1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.demo.uif.library.fields;
17
18 import org.junit.Ignore;
19 import org.kuali.rice.krad.demo.uif.library.DemoLibraryBase;
20 import org.kuali.rice.testtools.common.JiraAwareFailureUtils;
21 import org.junit.Assert;
22 import org.junit.Rule;
23 import org.junit.Test;
24 import org.junit.rules.ExpectedException;
25 import org.kuali.rice.krad.uif.UifConstants;
26 import org.openqa.selenium.By;
27 import org.openqa.selenium.WebElement;
28
29
30
31
32 public class DemoFieldsDataAft extends DemoLibraryBase {
33
34
35
36
37 public static final String BOOKMARK_URL = "/kr-krad/kradsampleapp?viewId=Demo-DataFieldView&methodToCall=start";
38 public static final String DIV_DATA_LABEL_DATA_FIELD_1 = "div[data-label='DataField 1']";
39
40 @Rule
41 public ExpectedException exception = ExpectedException.none();
42
43 @Override
44 public String getBookmarkUrl() {
45 return BOOKMARK_URL;
46 }
47
48 @Override
49 protected void navigate() throws Exception {
50 navigateToLibraryDemo("Fields", "Data Field");
51 }
52
53 protected void testDataFieldDefault() throws Exception {
54 WebElement exampleDiv = navigateToExample("Demo-DataField-Example1");
55 WebElement field = findElement(By.cssSelector(DIV_DATA_LABEL_DATA_FIELD_1), exampleDiv);
56
57 String fieldId = field.getAttribute("id");
58 String controlId = fieldId + UifConstants.IdSuffixes.CONTROL;
59
60 assertIsVisible("#" + fieldId);
61 assertIsVisible("label[for='" + controlId + "']");
62 WebElement label = findElement(By.cssSelector("label[for='" + controlId + "']"), field);
63 if (!label.getText().contains("DataField 1:")) {
64 jiraAwareFail("Label text does not match");
65 }
66
67 assertTextPresent("1001", "#" + fieldId, "DataField value not correct");
68
69
70 findElement(By.xpath("//div/label[@data-label_for='" + fieldId + "']"));
71 }
72
73 protected void testDataFieldLabelTop() throws Exception {
74 WebElement exampleDiv = navigateToExample("Demo-DataField-Example2");
75 WebElement field = findElement(By.cssSelector(DIV_DATA_LABEL_DATA_FIELD_1), exampleDiv);
76
77 String fieldId = field.getAttribute("id");
78 String controlId = fieldId + UifConstants.IdSuffixes.CONTROL;
79
80 assertIsVisible("#" + fieldId);
81 assertIsVisible("label[for='" + controlId + "']");
82 WebElement label = findElement(By.cssSelector("label[for='" + controlId + "']"), field);
83 if (!label.getText().contains("DataField 1:")) {
84 jiraAwareFail("Label text does not match");
85 }
86 }
87
88 protected void testDataFieldLabelRight() throws Exception {
89 WebElement exampleDiv = navigateToExample("Demo-DataField-Example3");
90 WebElement field = findElement(By.cssSelector(DIV_DATA_LABEL_DATA_FIELD_1), exampleDiv);
91
92 String fieldId = field.getAttribute("id");
93 String controlId = fieldId + UifConstants.IdSuffixes.CONTROL;
94
95 assertTextPresent("1001", "#" + fieldId, "DataField value not correct");
96
97 assertIsVisible("label[for='" + controlId + "']");
98 WebElement label = findElement(By.cssSelector("[for='" + controlId + "']"), field);
99 if (!label.getText().contains("DataField 1")) {
100 jiraAwareFail("Label text does not match");
101 }
102
103
104 findElement(By.xpath("//div/label[@data-label_for='" + fieldId + "']"));
105 }
106
107 protected void testDataFieldDefaultValue() throws Exception {
108 String valueText = textValueUnderTest("Demo-DataField-Example4", "DataField 2");
109 if (!valueText.contains("2012")) {
110 jiraAwareFail("Fields Data Field Default Value 2012 not displayed");
111 }
112 }
113
114 protected void testDataFieldDefaultValueFinderClass() throws Exception {
115 String valueText = textValueUnderTest("Demo-DataField-Example12", "DataField 2");
116 if (!valueText.contains("Value returned from org.kuali.rice.krad.demo.uif.library.DemoValuesFinder")) {
117 jiraAwareFail("Fields Default Value Finder Field not displayed");
118 }
119 }
120
121 protected void testDataFieldAppendProperty() throws Exception {
122 String valueText = textValueUnderTest("Demo-DataField-Example5", "DataField 1");
123 assertTrue(valueText.endsWith("ID Val"));
124 }
125
126 protected void testDataFieldReplaceProperty() throws Exception {
127 String valueText = textValueUnderTest("Demo-DataField-Example6", "DataField 1");
128 assertTrue(valueText.contains("ID Val"));
129 }
130
131 protected void testDataFieldReplacePropertyWithField() throws Exception {
132 String valueText = textValueUnderTest("Demo-DataField-Example7", "DataField 1");
133 assertTrue(valueText.contains("My Book Title"));
134 }
135
136 protected void testDataFieldAppendPropertyWithField() throws Exception {
137 String valueText = textValueUnderTest("Demo-DataField-Example8", "DataField 1");
138 assertTrue(valueText.contains("1001 *-* My Book Title"));
139 }
140
141 protected void testDataFieldApplyFullMask() throws Exception {
142 String valueText = textValueUnderTest("Demo-DataField-Example9", "DataField 1");
143 assertTrue("1001 not masked to *********", valueText.contains("*********"));
144 }
145
146 protected void testDataFieldApplyPartialMask() throws Exception {
147 String valueText = textValueUnderTest("Demo-DataField-Example10", "DataField 1");
148 assertTrue("1001 not masked to **01", valueText.contains("**01"));
149 }
150
151 protected void testDataFieldHideProperty() throws Exception {
152 WebElement exampleDiv = navigateToExample("Demo-DataField-Example11");
153
154 if (findElements(By.cssSelector(DIV_DATA_LABEL_DATA_FIELD_1), exampleDiv).size() > 0) {
155 jiraAwareFail(DIV_DATA_LABEL_DATA_FIELD_1 + " not hidden");
156 }
157 }
158
159 private String textValueUnderTest(String example, String testLabel) throws Exception {
160 WebElement exampleDiv = navigateToExample(example);
161 WebElement field = findElement(By.cssSelector("div[data-label='" + testLabel + "']"), exampleDiv);
162
163 String fieldId = field.getAttribute("id");
164 String controlId = fieldId + UifConstants.IdSuffixes.CONTROL;
165
166 assertIsVisible("#" + fieldId);
167 assertIsVisible("label[for='" + controlId + "']");
168 WebElement label = findElement(By.cssSelector("[for='" + controlId + "']"), field);
169 if (!label.getText().contains(testLabel)) {
170 jiraAwareFail("Label text does not match");
171 }
172
173 return findElement(By.id(fieldId)).getText();
174 }
175
176 protected void testDataFieldExamples() throws Exception {
177 testDataFieldDefault();
178
179
180 testDataFieldDefaultValue();
181 testDataFieldDefaultValueFinderClass();
182 testDataFieldAppendProperty();
183 testDataFieldReplaceProperty();
184 testDataFieldReplacePropertyWithField();
185 testDataFieldAppendPropertyWithField();
186 testDataFieldApplyFullMask();
187 testDataFieldApplyPartialMask();
188 testDataFieldHideProperty();
189 }
190
191 @Test
192 @Ignore
193 public void testDataFieldExamplesBookmark() throws Exception {
194 testDataFieldExamples();
195 passed();
196 }
197
198 @Test
199 @Ignore
200 public void testDataFieldExamplesNav() throws Exception {
201 testDataFieldExamples();
202 passed();
203 }
204
205 @Test
206 public void testDataFieldDefaultBookmark() throws Exception {
207 testDataFieldDefault();
208 passed();
209 }
210
211 @Test
212 public void testDataFieldDefaultNav() throws Exception {
213 testDataFieldDefault();
214 passed();
215 }
216
217 @Test
218 public void testDataFieldDefaultValueBookmark() throws Exception {
219 testDataFieldDefaultValue();
220 passed();
221 }
222
223 @Test
224 public void testDataFieldDefaultValueNav() throws Exception {
225 testDataFieldDefaultValue();
226 passed();
227 }
228
229 @Test
230 public void testDataFieldDefaultValueFinderClassBookmark() throws Exception {
231 testDataFieldDefaultValueFinderClass();
232 passed();
233 }
234
235 @Test
236 public void testDataFieldDefaultValueFinderClassNav() throws Exception {
237 testDataFieldDefaultValueFinderClass();
238 passed();
239 }
240
241 @Test
242 public void testDataFieldAppendPropertyBookmark() throws Exception {
243 testDataFieldAppendProperty();
244 passed();
245 }
246
247 @Test
248 public void testDataFieldAppendPropertyNav() throws Exception {
249 testDataFieldAppendProperty();
250 passed();
251 }
252
253 @Test
254 public void testDataFieldReplacePropertyBookmark() throws Exception {
255 testDataFieldReplaceProperty();
256 passed();
257 }
258
259 @Test
260 public void testDataFieldReplacePropertyNav() throws Exception {
261 testDataFieldReplaceProperty();
262 passed();
263 }
264
265 @Test
266 public void testDataFieldReplacePropertyWithFieldBookmark() throws Exception {
267 testDataFieldReplacePropertyWithField();
268 passed();
269 }
270
271 @Test
272 public void testDataFieldReplacePropertyWithFieldNav() throws Exception {
273 testDataFieldReplacePropertyWithField();
274 passed();
275 }
276
277 @Test
278 public void testDataFieldAppendPropertyWithFieldBookmark() throws Exception {
279 testDataFieldAppendPropertyWithField();
280 passed();
281 }
282
283 @Test
284 public void testDataFieldAppendPropertyWithFieldNav() throws Exception {
285 testDataFieldAppendPropertyWithField();
286 passed();
287 }
288
289 @Test
290 public void testDataFieldApplyFullMaskBookmark() throws Exception {
291 testDataFieldApplyFullMask();
292 passed();
293 }
294
295 @Test
296 public void testDataFieldApplyFullMaskNav() throws Exception {
297 testDataFieldApplyFullMask();
298 passed();
299 }
300
301 @Test
302 public void testDataFieldApplyPartialMaskBookmark() throws Exception {
303 testDataFieldApplyPartialMask();
304 passed();
305 }
306
307 @Test
308 public void testDataFieldApplyPartialMaskNav() throws Exception {
309 testDataFieldApplyPartialMask();
310 passed();
311 }
312
313 @Test
314 public void testDataFieldHidePropertyBookmark() throws Exception {
315 testDataFieldHideProperty();
316 passed();
317 }
318
319 @Test
320 public void testDataFieldHidePropertyNav() throws Exception {
321 testDataFieldHideProperty();
322 passed();
323 }
324 }