1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package edu.sampleu.admin;
17
18 import org.kuali.rice.testtools.selenium.AutomatedFunctionalTestUtils;
19 import org.kuali.rice.testtools.selenium.WebDriverLegacyITBase;
20 import org.kuali.rice.testtools.selenium.WebDriverUtils;
21 import org.apache.commons.lang.RandomStringUtils;
22 import org.junit.Test;
23 import org.openqa.selenium.By;
24
25 import java.text.SimpleDateFormat;
26 import java.util.Calendar;
27
28
29
30
31
32
33 public class DetailedDocSearchAft extends WebDriverLegacyITBase {
34
35
36
37
38
39 public static String BOOKMARK_URL = AutomatedFunctionalTestUtils.PORTAL + "?channelTitle=Document%20Search&channelUrl=" + WebDriverUtils
40 .getBaseUrlString() + "/kew/DocumentSearch.do?docFormKey=88888888&returnLocation=" + AutomatedFunctionalTestUtils.PORTAL_URL + AutomatedFunctionalTestUtils.HIDE_RETURN_LINK;
41
42 private String groupId = null;
43 private String groupName = null;
44 private String groupRandomCode = null;
45 private String parameterDocId = null;
46 private String todayDate = null;
47
48 @Override
49 protected String getBookmarkUrl() {
50 return BOOKMARK_URL;
51 }
52
53 @Override
54 protected void navigate() throws Exception {
55 waitAndClickByXpath("//img[@alt='doc search']");
56 }
57
58 @Test
59 public void testAdvancedDocSearchNav() throws Exception {
60 advancedDocSearchAll();
61 }
62
63 @Test
64 public void testAdvancedDocSearchBookmark() throws Exception {
65 advancedDocSearchAll();
66 }
67
68 private void advancedDocSearchAll() throws Exception{
69 todayDate = getDateToUseForSearch();
70 createGroupDocument();
71 selectTopFrame();
72 createGroupDocumentFinal();
73 selectTopFrame();
74 createGroupDocumentFinal();
75 selectTopFrame();
76 createParameterDocument();
77 selectTopFrame();
78 waitAndClickByXpath("//a[@title='Document Search']");
79 acceptAlertIfPresent();
80 selectFrameIframePortlet();
81 waitAndClickByName("toggleAdvancedSearch");
82 acceptAlertIfPresent();
83 searchByDocumentType();
84 searchByInitiator();
85 searchByApprover();
86 searchByViewer();
87 searchByGroupViewer();
88 searchByDocumentId();
89 searchByApplicationDocumentId();
90 searchByDocumentStatus();
91 searchByDateCreatedFrom();
92 searchByDateCreatedTo();
93 searchByDateApprovedFrom();
94 searchByDateApprovedTo();
95 searchByDateLastModifiedFrom();
96 searchByDateLastModifiedTo();
97 searchByDateLastFinalizedFrom();
98 searchByDateLastFinalizedTo();
99 searchByTitle();
100 passed();
101 }
102
103 private String getDateToUseForSearch() {
104 Calendar nextYearCal = Calendar.getInstance();
105 SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
106 return sdf.format(nextYearCal.getTime());
107 }
108
109 private void createGroupDocument() throws Exception{
110 waitAndClickAdministration();
111 selectFrameIframePortlet();
112 waitAndClickByLinkText("Group");
113 selectFrameIframePortlet();
114 waitAndClickByXpath("//a[@title='Create a new record']");
115 selectFrameIframePortlet();
116 String randomCode = RandomStringUtils.randomAlphabetic(9).toUpperCase();
117 waitAndSelectByName("document.groupNamespace","KR-BUS - Service Bus");
118 waitAndTypeByName("document.documentHeader.documentDescription","Group");
119 groupName = "Group 1"+randomCode;
120 waitAndTypeByName("document.groupName", groupName);
121 groupId=waitForElementPresentByXpath("//div[@id='tab-Overview-div']/div[@class='tab-container']/table/tbody/tr/td").getText();
122
123
124 waitAndClickByName("methodToCall.toggleTab.tabAdHocRecipients");
125 waitAndSelectByName("newAdHocRoutePerson.actionRequested", "ACKNOWLEDGE");
126 waitAndTypeByName("newAdHocRoutePerson.id", "user1");
127 WebDriverUtils.jGrowl(getDriver(), "Click Add Person", false, "Click Add Person");
128 waitAndClickByName("methodToCall.insertAdHocRoutePerson");
129
130 waitAndClickByXpath("//input[@name='methodToCall.route']");
131 }
132
133 private void createGroupDocumentFinal() throws Exception{
134 waitAndClickAdministration();
135 selectFrameIframePortlet();
136 waitAndClickByLinkText("Group");
137 selectFrameIframePortlet();
138 waitAndClickByXpath("//a[@title='Create a new record']");
139 selectFrameIframePortlet();
140 String randomCode = RandomStringUtils.randomAlphabetic(9).toUpperCase();
141 waitAndSelectByName("document.groupNamespace", "KR-BUS - Service Bus");
142 waitAndTypeByName("document.documentHeader.documentDescription","Group");
143 waitAndTypeByName("document.groupName", "Group Final "+randomCode);
144 waitAndClickByXpath("//input[@name='methodToCall.blanketApprove']");
145 }
146
147 private void createParameterDocument() throws Exception{
148 waitAndClickAdministration();
149 selectFrameIframePortlet();
150 waitAndClickByLinkText("Parameter");
151 selectFrameIframePortlet();
152 waitAndClickByXpath("//a[@title='Create a new record']");
153 selectFrameIframePortlet();
154 groupRandomCode = RandomStringUtils.randomAlphabetic(9).toUpperCase();
155 waitAndTypeByName("document.documentHeader.documentDescription","New Paramater " + groupRandomCode);
156 waitAndTypeByName("document.documentHeader.organizationDocumentNumber","7777777");
157 waitAndSelectByName("document.newMaintainableObject.namespaceCode", "KR-SAP - Sample App");
158 waitAndTypeByName("document.newMaintainableObject.componentCode", "TestComponent");
159 waitAndTypeByName("document.newMaintainableObject.name", "Parameter" + groupRandomCode);
160 waitAndTypeByName("document.newMaintainableObject.description", "Description " + groupRandomCode);
161 waitAndSelectByName("document.newMaintainableObject.parameterTypeCode", "Config");
162 waitAndClickByXpath(
163 "//input[@type='radio' and @id='document.newMaintainableObject.evaluationOperatorCodeAllowed' and @value='A']");
164 parameterDocId = driver.findElement(By.xpath("//div[@id='headerarea']/div/table/tbody/tr[1]/td[1]")).getText();
165
166
167 waitAndClickByName("methodToCall.toggleTab.tabAdHocRecipients");
168 waitAndSelectByName("newAdHocRoutePerson.actionRequested", "ACKNOWLEDGE");
169 waitAndTypeByName("newAdHocRoutePerson.id", "user1");
170 WebDriverUtils.jGrowl(getDriver(), "Click Add Person", false, "Click Add Person");
171 waitAndClickByName("methodToCall.insertAdHocRoutePerson");
172
173 selectOptionByName("newAdHocRouteWorkgroup.actionRequested", "ACKNOWLEDGE");
174 waitAndTypeByName("newAdHocRouteWorkgroup.recipientName", groupName);
175 waitAndTypeByName("newAdHocRouteWorkgroup.recipientNamespaceCode", "KR-BUS");
176 WebDriverUtils.jGrowl(getDriver(), "Click Add Group", false, "Click Add Group");
177 waitAndClickByName("methodToCall.insertAdHocRouteWorkgroup");
178
179 waitAndClickByXpath("//input[@name='methodToCall.route']");
180 }
181
182 private void searchByDocumentType() throws Exception {
183 selectFrameIframePortlet();
184 waitAndTypeByName("documentTypeName","ParameterMaintenanceDocument");
185 waitAndTypeByName("rangeLowerBoundKeyPrefix_dateCreated","03/24/2000");
186 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
187 waitForTextPresent("Parameter Maintenance Document");
188 waitAndClickByName("methodToCall.clearValues");
189 }
190
191 private void searchByInitiator() throws Exception {
192 selectFrameIframePortlet();
193 waitAndTypeByName("initiatorPrincipalName","admin");
194 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
195 waitForTextPresent("items retrieved");
196 waitForElementPresentByXpath("//a[contains(text(),'admin, admin')]");
197 waitAndClickByName("methodToCall.clearValues");
198 }
199
200 private void searchByApprover() throws Exception {
201 selectFrameIframePortlet();
202 waitAndTypeByName("approverPrincipalName", "admin");
203 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
204 waitForTextPresent("items retrieved");
205 waitForTextPresent("Group - Group");
206 waitAndClickByName("methodToCall.clearValues");
207 }
208
209 private void searchByViewer() throws Exception {
210 waitAndTypeByName("viewerPrincipalName","user1");
211 clearTextByName("approverPrincipalName");
212 waitAndTypeByName("rangeLowerBoundKeyPrefix_dateCreated","03/24/2000");
213 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
214 waitForTextPresent("items retrieved");
215 waitForTextPresent("Parameter Maintenance Document");
216 waitForTextPresent("Group - Group");
217 waitAndClickByName("methodToCall.clearValues");
218 }
219
220 private void searchByGroupViewer() throws Exception {
221 waitAndClickByXpath("//input[@type='image' and @alt='Search Group Viewer Id']");
222 selectFrameIframePortlet();
223 waitAndTypeByName("id",groupId);
224 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
225 waitAndClickLinkContainingText("return value");
226 selectFrameIframePortlet();
227 waitAndTypeByName("rangeLowerBoundKeyPrefix_dateCreated","03/24/2000");
228 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
229 waitForTextPresent("Parameter Maintenance Document");
230 waitForElementPresentByXpath("//a[contains(text(),'admin, admin')]");
231 waitAndClickByName("methodToCall.clearValues");
232 }
233
234 private void searchByDocumentId() throws Exception {
235 waitAndTypeByName("documentId", parameterDocId);
236 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
237 waitForElementPresentByXpath("//a[contains(text(),parameterDocId)]");
238 waitForTextPresent("Parameter Maintenance Document");
239 waitAndClickByName("methodToCall.clearValues");
240 }
241
242 private void searchByApplicationDocumentId() throws Exception {
243 waitAndTypeByName("applicationDocumentId","7777777");
244 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
245 waitForElementPresentByXpath("//a[contains(text(),parameterDocId)]");
246 waitForTextPresent("Parameter Maintenance Document");
247 waitAndClickByName("methodToCall.clearValues");
248 }
249
250 private void searchByDocumentStatus() throws Exception {
251 selectByName("statusCode","Successful Statuses");
252 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
253 waitForTextPresent("PROCESSED");
254 waitForTextPresent("FINAL");
255 waitAndClickByName("methodToCall.clearValues");
256 }
257
258 private void searchByDateCreatedFrom() throws Exception {
259 waitAndTypeByName("rangeLowerBoundKeyPrefix_dateCreated","04/17/2005");
260 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
261 waitForTextPresent("items retrieved");
262 waitAndClickByName("methodToCall.clearValues");
263 }
264
265 private void searchByDateCreatedTo() throws Exception {
266 waitAndTypeByName("dateCreated", todayDate);
267 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
268 waitForTextPresent("items retrieved");
269 waitAndClickByName("methodToCall.clearValues");
270
271
272
273 waitAndTypeByName("dateCreated","04/17/2014");
274 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
275 waitForTextPresent("No values match this search.");
276 waitAndClickByName("methodToCall.clearValues");
277 }
278
279 private void searchByDateApprovedFrom() throws Exception {
280 waitAndTypeByName("rangeLowerBoundKeyPrefix_dateApproved","04/17/2005");
281 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
282 waitForTextPresent("items retrieved");
283 waitAndClickByName("methodToCall.clearValues");
284 }
285
286 private void searchByDateApprovedTo() throws Exception {
287 waitAndTypeByName("dateApproved", todayDate);
288 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
289 waitForTextPresent("items retrieved");
290 waitAndClickByName("methodToCall.clearValues");
291
292
293
294 waitAndTypeByName("dateApproved","04/17/2014");
295 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
296 waitForTextPresent("No values match this search.");
297 waitAndClickByName("methodToCall.clearValues");
298 }
299
300 private void searchByDateLastModifiedFrom() throws Exception {
301 waitAndTypeByName("rangeLowerBoundKeyPrefix_dateLastModified","04/17/2005");
302 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
303 waitForTextPresent("items retrieved");
304 waitAndClickByName("methodToCall.clearValues");
305 }
306
307 private void searchByDateLastModifiedTo() throws Exception {
308 waitAndTypeByName("dateLastModified", todayDate);
309 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
310 waitForTextPresent("items retrieved");
311 waitAndClickByName("methodToCall.clearValues");
312
313
314
315 waitAndTypeByName("dateLastModified","04/17/2014");
316 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
317 waitForTextPresent("No values match this search.");
318 waitAndClickByName("methodToCall.clearValues");
319 }
320
321 private void searchByDateLastFinalizedFrom() throws Exception {
322 waitAndTypeByName("rangeLowerBoundKeyPrefix_dateFinalized","04/17/2005");
323 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
324 waitForTextPresent("items retrieved");
325 waitAndClickByName("methodToCall.clearValues");
326 }
327
328 private void searchByDateLastFinalizedTo() throws Exception {
329 waitAndTypeByName("dateFinalized", todayDate);
330 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
331 waitForTextPresent("items retrieved");
332 waitAndClickByName("methodToCall.clearValues");
333
334
335
336 waitAndTypeByName("dateFinalized","04/17/2014");
337 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
338 waitForTextPresent("No values match this search.");
339 waitAndClickByName("methodToCall.clearValues");
340 }
341
342 private void searchByTitle() throws Exception {
343 waitAndTypeByName("title","New ParameterBo - New Paramater*");
344 waitAndTypeByName("rangeLowerBoundKeyPrefix_dateCreated","03/24/2000");
345 waitAndClickByXpath("//td/input[@type='image' and @name='methodToCall.search']");
346 waitForTextPresent("New ParameterBo - New Paramater " + groupRandomCode);
347 waitAndClickByName("methodToCall.clearValues");
348 }
349 }