1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package edu.samplu.admin.test;
18
19 import edu.samplu.common.ITUtil;
20 import edu.samplu.common.WebDriverLegacyITBase;
21 import org.junit.Assert;
22 import org.junit.Ignore;
23 import org.junit.Test;
24 import org.openqa.selenium.By;
25 import org.openqa.selenium.WebElement;
26
27 import java.util.List;
28
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertTrue;
31
32
33
34
35 public class DocSearchWDIT extends WebDriverLegacyITBase {
36
37 String docId;
38 String parentName;
39
40 @Override
41 public void fail(String message) {
42 Assert.fail(message);
43 }
44
45 @Override
46 public String getTestUrl(){
47 return ITUtil.PORTAL;
48 }
49
50 public void createAndSaveDoc() throws Exception{
51 waitForTitleToEqualKualiPortalIndex();
52 waitAndClickByLinkText("Administration");
53 waitForTitleToEqualKualiPortalIndex();
54 waitAndClickByLinkText("Document Type");
55 waitForTitleToEqualKualiPortalIndex();
56 selectFrame("iframeportlet");
57 waitAndClickByXpath("//img[contains(@alt,'create new')]");
58 waitForPageToLoad();
59 Thread.sleep(2000);
60 assertElementPresentByXpath("//*[@name='methodToCall.route' and @alt='submit']","save button does not exist on the page");
61 waitForElementPresentByXpath("//div[@id='headerarea']/div/table/tbody/tr[1]/td[1]");
62 docId = driver.findElement(By.xpath("//div[@id='headerarea']/div/table/tbody/tr[1]/td[1]")).getText();
63 waitAndTypeByXpath("//input[@id='document.documentHeader.documentDescription']", "Creating new Document Type");
64 String parentDocType = "//input[@name='methodToCall.performLookup.(!!org.kuali.rice.kew.doctype.bo.DocumentType!!).(((name:document.newMaintainableObject.parentDocType.name,documentTypeId:document.newMaintainableObject.docTypeParentId,))).((`document.newMaintainableObject.parentDocType.name:name,`)).((<>)).(([])).((**)).((^^)).((&&)).((//)).((~~)).(::::;" + getBaseUrlString() + "/kr/lookup.do;::::).anchor4']";
65 waitAndClickByXpath(parentDocType);
66 waitForPageToLoad();
67
68 waitAndClickByXpath("//input[@name='methodToCall.search' and @value='search']");
69 waitForPageToLoad();
70 parentName= driver.findElement(By.xpath("//table[@id='row']/tbody/tr[1]/td[3]")).getText();
71 waitAndClickByLinkText("return value");
72 String docTypeName = "TestDocType " + ITUtil.DTS;
73 waitForElementPresentByXpath("//input[@id='document.newMaintainableObject.name']");
74 waitAndTypeByXpath("//input[@id='document.newMaintainableObject.name']", docTypeName);
75 waitAndTypeByXpath("//input[@id='document.newMaintainableObject.unresolvedDocHandlerUrl']", "${kr.url}/maintenance.do?methodToCall=docHandler");
76 waitAndTypeByXpath("//input[@id='document.newMaintainableObject.actualNotificationFromAddress']", "NFA");
77 waitAndTypeByXpath("//input[@id='document.newMaintainableObject.label']", "TestDocument Label");
78 waitAndTypeByXpath("//input[@id='document.newMaintainableObject.unresolvedHelpDefinitionUrl']", "default.htm?turl=WordDocuments%2Fdocumenttype.htm");
79 waitAndClickByXpath("//input[@name='methodToCall.save' and @alt='save']");
80
81
82 selectTopFrame();
83 }
84 @Test
85 public void testBasicDocSearch() throws Exception {
86 createAndSaveDoc();
87 waitAndClickByXpath("//a/img[@alt='doc search']");
88 waitForPageToLoad();
89 selectFrame("iframeportlet");
90 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='detailed search']");
91 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='superuser search']");
92 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='clear saved searches search']");
93 waitAndTypeByName("documentTypeName", parentName);
94 waitAndTypeByName("initiatorPrincipalName", "admin");
95 waitAndTypeByName("documentId", docId);
96
97
98 waitAndClickByXpath("//input[@name='methodToCall.search' and @alt='search']");
99 assertEquals(docId, waitFor(By.xpath("//table[@id='row']/tbody/tr[1]/td[1]/a")).getText());
100
101 waitAndClickByXpath("//input[@name='methodToCall.clearValues' and @alt='clear']");
102 assertEquals("", driver.findElement(By.xpath("//input[@name='documentTypeName']")).getAttribute("value"));
103 assertEquals("", driver.findElement(By.xpath("//input[@name='initiatorPrincipalName']")).getAttribute("value"));
104 assertEquals("", driver.findElement(By.xpath("//input[@name='documentId']")).getAttribute("value"));
105 assertEquals("", driver.findElement(By.xpath("//input[@name='rangeLowerBoundKeyPrefix_dateCreated']")).getAttribute("value"));
106 assertEquals("", driver.findElement(By.xpath("//input[@name='dateCreated']")).getAttribute("value"));
107 waitAndClickByXpath("//a[@title='cancel']");
108 waitForPageToLoad();
109 passed();
110 }
111
112 @Ignore
113 @Test
114 public void testDetailedDocSearch() throws Exception{
115
116 waitAndClickByXpath("//a/img[@alt='doc search']");
117 waitForPageToLoad();
118 selectFrame("iframeportlet");
119 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='detailed search']");
120 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='superuser search']");
121 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='clear saved searches search']");
122 waitAndClickByXpath("//div[@class='lookupcreatenew']/input[@alt='detailed search']");
123 waitForPageToLoad();
124 assertElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='basic search']");
125
126 waitAndTypeByName("initiatorPrincipalName", "admin");
127
128
129
130 assertElementPresentByName("approverPrincipalName", "Approver input field is not there in the detailed search");
131
132 assertElementPresentByName("viewerPrincipalName", "Viewer input field is not there in the detailed search");
133
134 assertElementPresentByXpath("//select[@id='statusCode']", "Document Status select field is not there in the detailed search");
135 selectByXpath("//select[@id='statusCode']", "- SAVED");
136 waitAndClickByXpath("//input[@name='methodToCall.search' and @alt='search']");
137 waitForPageToLoad();
138 assertTrue(driver.findElement(By.id("row")).getText().contains("SAVED"));
139 assertElementPresentByXpath("//table[@id='row']/tbody/tr[1]/td[contains(a,'admin')]");
140
141 waitAndClickByXpath("//input[@name='methodToCall.clearValues' and @alt='clear']");
142
143 assertEquals("", driver.findElement(By.xpath("//input[@name='initiatorPrincipalName']")).getAttribute("value"));
144
145
146
147 waitAndClickByXpath("//a[@title='cancel']");
148 waitForPageToLoad();
149 passed();
150 }
151
152 @Test
153 public void testSuperUserSearch() throws Exception{
154
155 waitAndClickByXpath("//a/img[@alt='doc search']");
156 waitForPageToLoad();
157 selectFrame("iframeportlet");
158 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='detailed search']");
159 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='superuser search']");
160 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='clear saved searches search']");
161 waitAndClickByXpath("//div[@class='lookupcreatenew']/input[@alt='superuser search']");
162 waitForPageToLoad();
163 assertElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='non-superuser search']");
164 waitAndClickByXpath("//input[@name='methodToCall.search' and @alt='search']");
165 waitForPageToLoad();
166 waitAndClickByXpath("//table[@id='row']/tbody/tr[1]/td[1]/a");
167 selectTopFrame();
168 Thread.sleep(3000);
169 switchToWindow("Kuali :: Superuser Document Service");
170 waitForPageToLoad();
171
172
173 waitAndClickByXpath("//input[@src='images/buttonsmall_complete.gif']");
174 waitForPageToLoad();
175 assertElementPresentByName("methodToCall.approve","approve button does not exist on the page");
176 assertElementPresentByName("methodToCall.disapprove","disapprove button does not exist on the page");
177 assertElementPresentByName("methodToCall.cancel","cancel button does not exist on the page");
178 waitAndClickByName("methodToCall.approve","approve button does not exist on the page");
179 waitForPageToLoad();
180 waitAndClickByXpath("//a[@href='DocumentSearch.do']/img[@alt='cancel']");
181 waitForPageToLoad();
182 waitAndClickByXpath("//input[@name='methodToCall.search' and @alt='search']");
183 waitForPageToLoad();
184 assertEquals("FINAL", driver.findElement(By.xpath("//table[@id='row']/tbody/tr[1]/td[4]")).getText());
185 passed();
186 }
187
188 @Test
189 public void testClearSavedSearches() throws Exception{
190 waitAndClickByXpath("//a/img[@alt='doc search']");
191 waitForPageToLoad();
192 selectFrame("iframeportlet");
193 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='detailed search']");
194 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='superuser search']");
195 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='clear saved searches search']");
196 waitAndClickByXpath("//div[@class='lookupcreatenew']/input[@alt='clear saved searches search']");
197 waitForPageToLoad();
198 WebElement select1 = driver.findElement(By.xpath("//select[@id='savedSearchToLoadAndExecute']"));
199 List<WebElement> options = select1.findElements(By.tagName("option"));
200 int count= options.size();
201 assertEquals(5,count);
202 passed();
203 }
204
205 @Test
206 public void testAjaxPageReload() throws Exception{
207 waitAndClickByXpath("//a/img[@alt='doc search']");
208 waitForPageToLoad();
209 selectFrame("iframeportlet");
210 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='detailed search']");
211 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='superuser search']");
212 waitForElementPresentByXpath("//div[@class='lookupcreatenew']/input[@alt='clear saved searches search']");
213 waitForElementPresentByXpath("//select[@id='savedSearchToLoadAndExecute']");
214 waitAndTypeByName("documentTypeName", "KualiNotification");
215 Thread.sleep(2000);
216 fireEvent("documentTypeName", "blur");
217 Thread.sleep(1000);
218 assertElementPresentByName("documentAttribute.notificationContentType");
219 assertElementPresentByName("documentAttribute.notificationChannel");
220 assertElementPresentByName("documentAttribute.notificationProducer");
221 assertElementPresentByName("documentAttribute.notificationPriority");
222 assertElementPresentByName("documentAttribute.notificationRecipients");
223 assertElementPresentByName("documentAttribute.notificationSenders");
224 waitAndClickByXpath("//a[@title='cancel']");
225 passed();
226 }
227 }