1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package edu.sampleu.krad.configview;
17
18 import org.junit.Test;
19 import org.kuali.rice.testtools.selenium.WebDriverLegacyITBase;
20 import org.openqa.selenium.By;
21
22
23
24
25 public class CollectionsAft extends WebDriverLegacyITBase {
26
27
28
29
30 public static final String BOOKMARK_URL = "/kr-krad/uicomponents?viewId=ConfigurationTestView-Collections&methodToCall=start";
31
32
33
34
35 public static final String TEXT_COLLECTIONS_CONFIGURATION_TEST_VIEW_XPATH =
36 "(//a[contains(text(),'Collections Configuration Test View')])[1]";
37
38
39
40
41 public static final String KUALI_COLLECTION_WINDOW_TITLE = "Kuali :: Collection Test View";
42
43 @Override
44 protected String getBookmarkUrl() {
45 return BOOKMARK_URL;
46 }
47
48 protected void navigate() throws Exception {
49 waitAndClickKRAD();
50 waitAndClickByXpath(TEXT_COLLECTIONS_CONFIGURATION_TEST_VIEW_XPATH);
51 switchToWindow(KUALI_COLLECTION_WINDOW_TITLE);
52 }
53
54 protected void testCollections() throws Exception {
55 testActionColumnPlacement();
56 testAddViaLightbox();
57 testColumnSequence();
58 testSequencerow();
59 passed();
60 }
61
62 @Test
63 public void testCollectionsBookmark() throws Exception {
64 testCollections();
65 }
66
67 @Test
68 public void testCollectionsNav() throws Exception {
69 testCollections();
70 }
71
72 @Test
73 public void testAddBlankLineBookmark() throws Exception {
74 testAddBlankLine();
75 passed();
76 }
77
78 @Test
79 public void testAddBlankLineNav() throws Exception {
80 testAddBlankLine();
81 passed();
82 }
83
84 @Test
85 public void testAddDeleteBookmark() throws Exception {
86 testAddRowOfText();
87 passed();
88 }
89
90 @Test
91 public void testAddDeleteNav() throws Exception {
92 testAddRowOfText();
93 passed();
94 }
95
96 @Test
97 public void testSumBookmark() throws Exception {
98 testSum();
99 passed();
100 }
101
102 @Test
103 public void testSumNav() throws Exception {
104 testSum();
105 passed();
106 }
107
108 protected void testAddRowOfText() throws Exception {
109 assertTableLayout();
110 waitAndTypeByName("newCollectionLines['list1'].field1", "asdf1");
111 waitAndTypeByName("newCollectionLines['list1'].field2", "asdf2");
112 waitAndTypeByName("newCollectionLines['list1'].field3", "asdf3");
113 waitAndTypeByName("newCollectionLines['list1'].field4", "asdf4");
114 waitAndClickByXpath("//button[contains(.,'add')]"); // the first button is the one we want
115
116 for (int second = 0;; second++) {
117 if (second >= waitSeconds)
118 jiraAwareFail(TIMEOUT_MESSAGE);
119 try {
120 if (waitAndGetAttributeByName("newCollectionLines['list1'].field1", "value").equals(""))
121 break;
122 } catch (Exception e) {}
123 Thread.sleep(1000);
124 }
125
126 assertEquals("", waitAndGetAttributeByName("newCollectionLines['list1'].field1", "value"));
127 assertEquals("", waitAndGetAttributeByName("newCollectionLines['list1'].field2", "value"));
128 assertEquals("", waitAndGetAttributeByName("newCollectionLines['list1'].field3", "value"));
129 assertEquals("", waitAndGetAttributeByName("newCollectionLines['list1'].field4", "value"));
130 assertEquals("asdf1", waitAndGetAttributeByName("list1[0].field1", "value"));
131 assertEquals("asdf2", waitAndGetAttributeByName("list1[0].field2", "value"));
132 assertEquals("asdf3", waitAndGetAttributeByName("list1[0].field3", "value"));
133 assertEquals("asdf4", waitAndGetAttributeByName("list1[0].field4", "value"));
134 }
135
136
137
138
139 protected void testAddBlankLine() throws Exception {
140 waitAndClickByLinkText("Add Blank Line");
141 waitAndClickById("Collections-AddBlankLine-TableTop_del_line0");
142 Thread.sleep(3000);
143 waitAndClickByXpath("//button[contains(.,'Add Line')]");
144 Thread.sleep(3000);
145 assertElementPresentByName("list1[0].field1");
146 assertTableLayout();
147 assertEquals("", waitAndGetAttributeByName("list1[0].field1", "value"));
148 assertEquals("", waitAndGetAttributeByName("list1[0].field2", "value"));
149 assertEquals("", waitAndGetAttributeByName("list1[0].field3", "value"));
150 assertEquals("", waitAndGetAttributeByName("list1[0].field4", "value"));
151 }
152
153 private void testSum() throws InterruptedException {
154 assertEquals("5", waitAndGetAttributeByName("list1[0].field1", "value"));
155 assertEquals("6", waitAndGetAttributeByName("list1[0].field2", "value"));
156 assertEquals("7", waitAndGetAttributeByName("list1[0].field3", "value"));
157 assertEquals("8", waitAndGetAttributeByName("list1[0].field4", "value"));
158 assertEquals("Total: 419", driver.findElement(By.xpath("//fieldset/div/div[2]/div[2]")).getText());
159 waitAndTypeByName("list1[0].field1", "1");
160 waitAndTypeByName("list1[0].field2", "1");
161 waitAndTypeByName("list1[0].field3", "1");
162 waitAndTypeByName("list1[0].field4", "1");
163 assertEquals("Total: 465", driver.findElement(By.xpath("//fieldset/div/div[2]/div[2]")).getText());
164 }
165
166
167
168
169 protected void testActionColumnPlacement() throws Exception {
170
171
172
173 waitAndClickByLinkText("Column Sequence");
174 Thread.sleep(2000);
175
176
177
178
179 for (int second = 0;; second++) {
180 if (second >= waitSeconds)
181 jiraAwareFail(TIMEOUT_MESSAGE);
182 try {
183 if (isElementPresentByXpath("//tr[2]/td[6]/div/fieldset/div/div[2]/button"))
184 break;
185 } catch (Exception e) {}
186 Thread.sleep(1000);
187 }
188 assertTrue(isElementPresentByXpath("//tr[2]/td[6]/div/fieldset/div/div[2]/button"));
189
190
191
192 for (int second = 0;; second++) {
193 if (second >= waitSeconds)
194 jiraAwareFail(TIMEOUT_MESSAGE);
195 try {
196 if (isElementPresentByXpath("//div[2]/div[2]/div[2]/table/tbody/tr[2]/td/div/fieldset/div/div[2]/button"))
197 break;
198 } catch (Exception e) {}
199 Thread.sleep(1000);
200 }
201 assertTrue(isElementPresentByXpath("//div[2]/div[2]/div[2]/table/tbody/tr[2]/td/div/fieldset/div/div[2]/button"));
202
203
204
205 for (int second = 0;; second++) {
206 if (second >= waitSeconds)
207 jiraAwareFail(TIMEOUT_MESSAGE);
208 try {
209 if (isElementPresentByXpath("//tr[2]/td[3]/div/fieldset/div/div[2]/button"))
210 break;
211 } catch (Exception e) {}
212 Thread.sleep(1000);
213 }
214 assertTrue(isElementPresentByXpath("//tr[2]/td[3]/div/fieldset/div/div[2]/button"));
215 }
216
217 protected void testAddViaLightbox() throws Exception {
218 waitAndClickByLinkText("Add Via Lightbox");
219 assertEquals("Total: 419", driver.findElement(By.xpath("//fieldset/div/div[2]/div[2]")).getText());
220 waitAndClickByXpath("//button[contains(.,'Add Line')]");
221 Thread.sleep(3000);
222 waitAndTypeByXpath("//form/div/table/tbody/tr/td/div/input", "1");
223 waitAndTypeByXpath("//form/div/table/tbody/tr[2]/td/div/input", "1");
224 waitAndTypeByXpath("//form/div/table/tbody/tr[3]/td/div/input", "1");
225 waitAndTypeByXpath("//form/div/table/tbody/tr[4]/td/div/input", "1");
226 waitAndClickByXpath("//button[@id='Collections-AddViaLightbox-TableTop_add']");
227 Thread.sleep(3000);
228 assertEquals("Total: 420", driver.findElement(By.xpath("//fieldset/div/div[2]/div[2]")).getText());
229 }
230
231 protected void testColumnSequence() throws Exception {
232 waitAndClickByLinkText("Column Sequence");
233 Thread.sleep(3000);
234 waitAndTypeByName("newCollectionLines['list1'].field1", "1");
235 waitAndTypeByName("newCollectionLines['list1'].field2", "1");
236 waitAndTypeByName("newCollectionLines['list1'].field3", "1");
237 waitAndTypeByName("newCollectionLines['list1'].field4", "1");
238 waitAndClick(By.id("Collections-ColumnSequence-TableDefault_add"));
239 Thread.sleep(3000);
240
241
242 testIfRowHasBeenAdded();
243
244
245 assertTrue(isElementPresentByXpath("//div[@id='Collections-ColumnSequence-TableDefault_disclosureContent']/div[@class='dataTables_wrapper']/table/tbody/tr[2]/td[6]/div/fieldset/div/div[@class='uif-boxLayout uif-horizontalBoxLayout clearfix']/button"));
246 }
247
248 protected void testSequencerow() throws Exception {
249 waitAndClickByLinkText("Save Row");
250 Thread.sleep(3000);
251 waitAndTypeByName("newCollectionLines['list1'].field1", "1");
252 waitAndTypeByName("newCollectionLines['list1'].field2", "1");
253 waitAndTypeByName("newCollectionLines['list1'].field3", "1");
254 waitAndTypeByName("newCollectionLines['list1'].field4", "1");
255 waitAndClickByXpath("//button[contains(.,'add')]");
256 Thread.sleep(3000);
257
258
259 testIfRowHasBeenAdded();
260
261
262 assertTrue(isElementPresentByXpath("//div[@id='Collections-SaveRow-Table_disclosureContent']/div[@class='dataTables_wrapper']/table/tbody/tr[2]/td[6]/div/fieldset/div/div[@class='uif-boxLayout uif-horizontalBoxLayout clearfix']/button"));
263
264 }
265
266 protected void testIfRowHasBeenAdded() throws Exception {
267
268 assertEquals("", waitAndGetAttributeByName("newCollectionLines['list1'].field1", "value"));
269 assertEquals("", waitAndGetAttributeByName("newCollectionLines['list1'].field2", "value"));
270 assertEquals("", waitAndGetAttributeByName("newCollectionLines['list1'].field3", "value"));
271 assertEquals("", waitAndGetAttributeByName("newCollectionLines['list1'].field4", "value"));
272 assertEquals("1", waitAndGetAttributeByName("list1[0].field1", "value"));
273 assertEquals("1", waitAndGetAttributeByName("list1[0].field2", "value"));
274 assertEquals("1", waitAndGetAttributeByName("list1[0].field3", "value"));
275 assertEquals("1", waitAndGetAttributeByName("list1[0].field4", "value"));
276 }
277 }