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.apache.commons.lang.StringUtils;
19 import org.junit.Test;
20 import org.openqa.selenium.By;
21 import org.openqa.selenium.WebElement;
22
23 import java.util.List;
24
25
26
27
28 public class LibraryFieldsGroupLinkAft extends LibraryFieldsKimLinkBase {
29
30
31
32
33 public static final String BOOKMARK_URL = "/kr-krad/kradsampleapp?viewId=Demo-GroupLinkFieldView&methodToCall=start";
34
35 public static final String GROUP_ID1 = "2005";
36 public static final String GROUP_ID2 = "2001";
37 public static final String GROUP_ID3 = "2000";
38 public static final String GROUP_ID4 = "2005";
39 public static final String GROUP_ID5 = "2005";
40 public static final String GROUP_NAMESPACECODE1 = "KUALI";
41 public static final String GROUP_NAMESPACECODE1_DROPDOWN = "KKKKKKKKKKKK";
42 public static final String GROUP_NAMESPACECODE2 = "KUALI";
43 public static final String GROUP_NAMESPACECODE3 = "KR-WKFLW";
44 public static final String GROUP_NAMESPACECODE4 = "KUALI";
45 public static final String GROUP_NAMESPACECODE5 = "KUALI";
46 public static final String GROUP_NAME1 = "Group1";
47 public static final String GROUP_NAME2 = "TestGroup1";
48 public static final String GROUP_NAME3 = "NotificationAdmin";
49 public static final String GROUP_NAME4 = "Group1";
50 public static final String GROUP_NAME5 = "Group1";
51 public static final String GROUP_LINKTEXT1 = "KUALI Group1";
52 public static final String GROUP_LINKTEXT2 = "KUALI TestGroup1";
53 public static final String GROUP_LINKTEXT3 = "KR-WKFLW NotificationAdmin";
54 public static final String GROUP_LINKTEXT4 = "KUALI Group1";
55 public static final String GROUP_LINKTEXT5 = "KUALI Group1";
56 public static final String GROUP_INQUIRY_KEY_ID1 = "id=2005";
57 public static final String GROUP_INQUIRY_KEY_ID2 = "id=2001";
58 public static final String GROUP_INQUIRY_KEY_ID3 = "id=2000";
59 public static final String GROUP_INQUIRY_KEY_ID4 = "id=2005";
60 public static final String GROUP_INQUIRY_KEY_ID5 = "id=2005";
61 public static final String GROUP_INQUIRY_KEY_NAME1 = "name=Group1";
62 public static final String GROUP_INQUIRY_KEY_NAME2 = "name=TestGroup1";
63 public static final String GROUP_INQUIRY_KEY_NAME3 = "name=NotificationAdmin";
64 public static final String GROUP_INQUIRY_KEY_NAME4 = "name=Group1";
65 public static final String GROUP_INQUIRY_KEY_NAME5 = "name=Group1";
66 public static final String GROUP_INQUIRY_KEY_NAMESPACECODE1 = "namespaceCode=KUALI";
67 public static final String GROUP_INQUIRY_KEY_NAMESPACECODE2 = "namespaceCode=KUALI";
68 public static final String GROUP_INQUIRY_KEY_NAMESPACECODE3 = "namespaceCode=KR-WKFLW";
69 public static final String GROUP_INQUIRY_KEY_NAMESPACECODE4 = "namespaceCode=KUALI";
70 public static final String GROUP_INQUIRY_KEY_NAMESPACECODE5 = "namespaceCode=KUALI";
71
72 public static final String GROUP_ICON_CLASSNAME = "icon-users";
73 public static final String LABEL_GROUP_NAME = "Group Name";
74 public static final String LABEL_NAME = "Name";
75 public static final String LABEL_GROUP_LINK = "Group Link";
76 public static final String LABEL_GROUP_LINK1 = "Group Link1";
77 public static final String LABEL_GROUP_LINK2 = "Group Link2";
78 public static final String LABEL_NAMESPACECODE = "NamespaceCode";
79 public static final String LABEL_GROUPNAME = "GroupName";
80 public static final String LABEL_DISABLED_GROUP_LINK = "Disabled Group Link";
81 public static final String LABEL_GROUP_ID = "Group Id";
82
83 public static final String DEMO_PAGE_ID1 = "Demo-GroupLinkField-Example1";
84 public static final String DEMO_PAGE_ID2 = "Demo-GroupLinkField-Example2";
85 public static final String DEMO_PAGE_ID3 = "Demo-GroupLinkField-Example3";
86 public static final String DEMO_PAGE_ID4 = "Demo-GroupLinkField-Example4";
87 public static final String DEMO_PAGE_ID5 = "Demo-GroupLinkField-Example5";
88 public static final String DEMO_PAGE_ID6 = "Demo-GroupLinkField-Example6";
89 public static final String DEMO_PAGE_ID7 = "Demo-GroupLinkField-Example7";
90 public static final String DEMO_PAGE_ID8 = "Demo-GroupLinkField-Example8";
91 public static final String DEMO_PAGE_HEADER1 = "Default";
92 public static final String DEMO_PAGE_HEADER2 = "Group Link Field with Label";
93 public static final String DEMO_PAGE_HEADER3 = "Group Link Field with Link Disabled";
94 public static final String DEMO_PAGE_HEADER4 = "Inquiry without Lightbox";
95 public static final String DEMO_PAGE_HEADER5 = "Group Link refreshed by Field changes";
96 public static final String DEMO_PAGE_HEADER6 = "Group Link as Input Field Addon";
97 public static final String DEMO_PAGE_HEADER7 = "Group Link as Icon";
98 public static final String DEMO_PAGE_HEADER8 = "Group Link with LinkText namespaceCode suppressed";
99
100 @Override
101 public String getBookmarkUrl() {
102 return BOOKMARK_URL;
103 }
104
105 @Override
106 protected void navigate() throws Exception {
107 navigateToLibraryDemo("Fields", "Group Link Field");
108 }
109
110 @Override
111 public WebElement navigateToExample(String exampleId) throws Exception {
112
113 navigateToLibraryDemo("Fields", "Group Link Field");
114 return super.navigateToExample(exampleId);
115 }
116
117 protected void testGroupLinkFieldDefault() throws Exception {
118 jGrowl("-- testGroupLinkFieldDefault");
119 WebElement exampleDiv = navigateToExample(DEMO_PAGE_ID1);
120 assertTextPresent(DEMO_PAGE_HEADER1);
121
122 WebElement field = findElement(By.cssSelector(UIF_LINK_CSS_SELECTOR), exampleDiv);
123 List<WebElement> links = exampleDiv.findElements(By.className(UIF_LINK_CLASSNAME));
124 assertEquals("Number of expected group field links not found on page.", 2, links.size());
125
126 for ( WebElement link : links) {
127 String href = link.getAttribute(HREF_ATTRIBUTE);
128 if ( !StringUtils.contains(href, INQUIRY)) {
129 fail("Inquiry not found in link.");
130 }
131
132 if ( !(StringUtils.contains(href, GROUP_INQUIRY_KEY_ID1) ||
133 (StringUtils.contains(href, GROUP_INQUIRY_KEY_NAMESPACECODE2) &&
134 StringUtils.contains(href, GROUP_INQUIRY_KEY_NAME2)))) {
135 fail("Group inquiry keys not found in href.");
136 }
137
138 String linkText = link.getText();
139 if ( !(StringUtils.contains(linkText, GROUP_LINKTEXT1) ||
140 StringUtils.contains(linkText, GROUP_LINKTEXT2))) {
141 fail("Group names in linkText not found");
142 }
143 }
144
145 field = findElement(By.linkText(GROUP_LINKTEXT1), exampleDiv);
146 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME1);
147
148 field = findElement(By.linkText(GROUP_LINKTEXT2), exampleDiv);
149 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME2);
150 }
151
152 protected void testGroupLinkFieldLabel() throws Exception {
153 jGrowl("-- testGroupLinkFieldLabel");
154 WebElement exampleDiv = navigateToExample(DEMO_PAGE_ID2);
155 assertTextPresent(DEMO_PAGE_HEADER2);
156
157 assertLabelWithTextPresent(LABEL_GROUP_LINK1);
158 assertLabelWithTextPresent(LABEL_GROUP_LINK2);
159
160 WebElement field = findElement(By.linkText(GROUP_LINKTEXT1), exampleDiv);
161 verifyLinkIsInquiry(field);
162 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_ID1);
163 verifyLinkText(field, GROUP_LINKTEXT1);
164 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME1);
165
166 field = findElement(By.linkText(GROUP_LINKTEXT2),exampleDiv);
167 verifyLinkIsInquiry(field);
168 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_NAMESPACECODE2);
169 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_NAME2);
170 verifyLinkText(field, GROUP_LINKTEXT2);
171 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME2);
172 }
173
174 protected void testGroupLinkFieldLinkDisabled() throws Exception {
175 jGrowl("-- testGroupLinkFieldLinkDisabled");
176 WebElement exampleDiv = navigateToExample(DEMO_PAGE_ID3);
177 assertTextPresent(DEMO_PAGE_HEADER3);
178
179 assertLabelWithTextPresent(LABEL_GROUP_LINK1);
180 assertLabelWithTextPresent(LABEL_GROUP_LINK2);
181
182 WebElement disabledLink = findElement(By.xpath("//span[contains( text(),'" + GROUP_LINKTEXT1 + "')]"), exampleDiv);
183 assertEquals("Disabled Link text not found", GROUP_LINKTEXT1, disabledLink.getText());
184
185 disabledLink = findElement(By.xpath("//span[contains( text(),'" + GROUP_LINKTEXT2 + "')]"), exampleDiv);
186 assertEquals("Disabled Link text not found", GROUP_LINKTEXT2, disabledLink.getText());
187 }
188
189 protected void testGroupLinkFieldNoLightbox() throws Exception {
190 jGrowl("-- testGroupLinkFieldNoLightbox");
191 WebElement exampleDiv = navigateToExample(DEMO_PAGE_ID4);
192 assertTextPresent(DEMO_PAGE_HEADER4);
193
194 WebElement field = findElement(By.cssSelector(UIF_LINK_CSS_SELECTOR), exampleDiv);
195
196 verifyLinkIsInquiry(field);
197 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_ID1);
198 verifyLinkText(field, GROUP_LINKTEXT1);
199
200 String dataOnClickScript = field.getAttribute("data-onclick");
201 if ( StringUtils.contains(dataOnClickScript,"openLinkInDialog(jQuery(this), \"\");")) {
202 fail("Lightbox not suppressed for Inquiry.");
203 }
204
205 waitAndClickByLinkText(field.getText());
206 waitAndClickButtonByText("Back", "Unable to find Back button");
207 }
208
209 protected void testGroupLinkFieldRefresh() throws Exception {
210 jGrowl("-- testGroupLinkFieldRefresh");
211 WebElement exampleDiv = navigateToExample(DEMO_PAGE_ID5);
212 assertTextPresent(DEMO_PAGE_HEADER5);
213
214 WebElement field = findElement(By.cssSelector(UIF_LINK_CSS_SELECTOR), exampleDiv);
215 assertLabelWithTextPresent(LABEL_GROUP_LINK);
216 verifyLinkIsInquiry(field);
217 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_NAMESPACECODE3);
218 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_NAME3);
219 verifyLinkText(field, GROUP_LINKTEXT3);
220 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME3);
221
222 waitForExampleElementById(DEMO_PAGE_ID5);
223 waitAndClickQuickFinderButton("QuickFinder not found.");
224 gotoLightBox();
225
226 waitAndTypeByName("lookupCriteria[namespaceCode]", GROUP_NAMESPACECODE1_DROPDOWN);
227 waitAndTypeByName("lookupCriteria[name]", GROUP_NAME1);
228
229
230
231 waitAndClickButtonByExactText("Search");
232 waitAndClickByLinkText("return value");
233
234 exampleDiv = waitForExampleElementById(DEMO_PAGE_ID5);
235 field = findElement(By.cssSelector(UIF_LINK_CSS_SELECTOR), exampleDiv);
236 verifyLinkText(field, GROUP_LINKTEXT1);
237 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_NAMESPACECODE1);
238 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_NAME1);
239
240 exampleDiv = waitForExampleElementById(DEMO_PAGE_ID5);
241 field = findElement(By.cssSelector(UIF_LINK_CSS_SELECTOR), exampleDiv);
242 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME1);
243 waitForExampleElementById(DEMO_PAGE_ID5);
244
245
246 waitAndClickLibraryLink();
247 acceptAlertIfPresent();
248 }
249
250 protected void testGroupLinkFieldAddon() throws Exception {
251 jGrowl("-- testGroupLinkFieldAddon");
252 WebElement exampleDiv = navigateToExample(DEMO_PAGE_ID6);
253 assertTextPresent(DEMO_PAGE_HEADER6);
254
255 WebElement field = findElement(By.cssSelector(UIF_LINK_CSS_SELECTOR), exampleDiv);
256 verifyLinkIsInquiry(field);
257 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_NAMESPACECODE4);
258 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_NAME4);
259 verifyLinkText(field, GROUP_LINKTEXT4);
260
261 clearTextByName("testGroupName4");
262 waitAndTypeByName("testGroupName4",GROUP_NAME2);
263 typeTab();
264 Thread.sleep(2000);
265
266 exampleDiv = waitForExampleElementById(DEMO_PAGE_ID6);
267 field = findElement(By.className(UIF_LINK_CLASSNAME), exampleDiv);
268 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME2);
269
270
271 waitAndClickLibraryLink();
272 acceptAlertIfPresent();
273 }
274
275 protected void testGroupLinkFieldIconLinks() throws Exception {
276 jGrowl("-- testGroupLinkFieldIconLinks");
277 WebElement exampleDiv = navigateToExample(DEMO_PAGE_ID7);
278 assertTextPresent(DEMO_PAGE_HEADER7);
279
280 WebElement field = findElement(By.xpath("//section[@id='" + DEMO_PAGE_ID7 + "']/div[@data-label='" +
281 LABEL_GROUP_LINK1 + "']/a"), exampleDiv);
282 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_ID5);
283 verifyLinkIcon(field, GROUP_ICON_CLASSNAME);
284 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME5);
285
286 exampleDiv = waitForExampleElementById(DEMO_PAGE_ID7);
287 field = findElement(By.xpath("//section[@id='" + DEMO_PAGE_ID7 + "']/div[@data-label='" +
288 LABEL_GROUP_LINK2 + "']/span"), exampleDiv);
289 verifyLinkIcon(field, GROUP_ICON_CLASSNAME);
290 }
291
292 protected void testGroupLinkFieldRefreshIconLinks() throws Exception {
293 jGrowl("-- testGroupLinkFieldRefreshIconLinks");
294 WebElement exampleDiv = navigateToExample(DEMO_PAGE_ID7);
295 assertTextPresent(DEMO_PAGE_HEADER7);
296
297 WebElement field = findElement(By.xpath("//section[@id='" + DEMO_PAGE_ID7 + "']/div[@data-label='" +
298 LABEL_GROUPNAME + "']/div/div/div/a[contains(@class,'" + GROUP_ICON_CLASSNAME + "')]"), exampleDiv);
299 verifyLinkIsInquiry(field);
300 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME5);
301
302 clearTextByName("testGroupNamespaceCode5");
303 waitAndTypeByName("testGroupNamespaceCode5", GROUP_NAMESPACECODE3);
304 typeTab();
305 clearTextByName("testGroupName5");
306 waitAndTypeByName("testGroupName5", GROUP_NAME3);
307 typeTab();
308 Thread.sleep(2000);
309
310 exampleDiv = waitForExampleElementById(DEMO_PAGE_ID7);
311 field = findElement(By.xpath("//section[@id='" + DEMO_PAGE_ID7 + "']/div[@data-label='" + LABEL_GROUPNAME +
312 "']/div/div/div/a[contains(@class,'" + GROUP_ICON_CLASSNAME + "')]"), exampleDiv);
313 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME3);
314
315
316 waitAndClickLibraryLink();
317 acceptAlertIfPresent();
318 }
319
320 protected void testGroupLinkFieldSuppressedNcLink() throws Exception {
321 jGrowl("-- testGroupLinkFieldSuppressedNcLink");
322 WebElement exampleDiv = navigateToExample(DEMO_PAGE_ID8);
323 assertTextPresent(DEMO_PAGE_HEADER8);
324
325 WebElement field = findElement(By.linkText(GROUP_NAME1), exampleDiv);
326 assertLabelWithTextPresent(LABEL_GROUP_LINK1);
327 verifyLinkIsInquiry(field);
328 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_ID1);
329 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME1);
330
331 exampleDiv = waitForExampleElementById(DEMO_PAGE_ID8);
332 field = findElement(By.linkText(GROUP_NAME2), exampleDiv);
333 assertLabelWithTextPresent(LABEL_GROUP_LINK2);
334 verifyLinkIsInquiry(field);
335 verifyKeyInInquiryHref(field, GROUP_INQUIRY_KEY_NAME2);
336 verifyLinkDataItem(field, LABEL_GROUP_NAME, GROUP_NAME2);
337 }
338
339 protected void testGroupLinkFieldExamples() throws Exception {
340 testGroupLinkFieldDefault();
341 testGroupLinkFieldLabel();
342 testGroupLinkFieldLinkDisabled();
343 testGroupLinkFieldNoLightbox();
344 testGroupLinkFieldRefresh();
345 testGroupLinkFieldIconLinks();
346 testGroupLinkFieldSuppressedNcLink();
347 }
348
349 @Test
350 public void testGroupLinkFieldExamplesBookmark() throws Exception {
351 testGroupLinkFieldExamples();
352 passed();
353 }
354
355 @Test
356 public void testGroupLinkFieldRefreshExamplesBookmark() throws Exception {
357 testGroupLinkFieldAddon();
358 testGroupLinkFieldRefreshIconLinks();
359 passed();
360 }
361
362 @Test
363 public void testGroupLinkFieldExamplesNav() throws Exception {
364 testGroupLinkFieldExamples();
365 passed();
366 }
367
368 @Test
369 public void testGroupLinkFieldRefreshExamplesNav() throws Exception {
370 testGroupLinkFieldAddon();
371 testGroupLinkFieldRefreshIconLinks();
372 passed();
373 }
374 }