1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.hr.lm.leave.approval;
17
18 import junit.framework.Assert;
19
20 import org.joda.time.DateTime;
21 import org.junit.After;
22 import org.junit.Before;
23 import org.junit.Test;
24 import org.kuali.hr.KPMEWebTestCase;
25 import org.kuali.hr.util.HtmlUnitUtil;
26 import org.kuali.kpme.core.FunctionalTest;
27 import org.kuali.kpme.tklm.utils.TkTestConstants;
28
29 import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
30 import com.gargoylesoftware.htmlunit.WebClient;
31 import com.gargoylesoftware.htmlunit.html.HtmlButton;
32 import com.gargoylesoftware.htmlunit.html.HtmlPage;
33
34 @FunctionalTest
35 public class LeaveBlockDisplayWebTest extends KPMEWebTestCase {
36 private static String YEAR = "2013";
37
38 @Before
39 public void setUp() throws Exception {
40 super.setUp();
41 }
42
43 @After
44 public void tearDown() throws Exception {
45 super.tearDown();
46 }
47
48 public void updateWebClient() {
49 WebClient webClient = getWebClient();
50 webClient.getOptions().setJavaScriptEnabled(true);
51 webClient.getOptions().setThrowExceptionOnScriptError(true);
52 webClient.setAjaxController(new NicelyResynchronizingAjaxController());
53 webClient.waitForBackgroundJavaScript(10000);
54 }
55
56 @Test
57 public void testLeaveBlockDisplayPage() throws Exception {
58
59 HtmlPage leaveBlockDisplayPage = HtmlUnitUtil
60 .gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.LEAVE_BLOCK_DISPLAY_URL);
61 Assert.assertNotNull("Leave Request page not found" + leaveBlockDisplayPage);
62
63 updateWebClient();
64
65
66 Assert.assertTrue("Page is not current year ",
67 leaveBlockDisplayPage.asText().contains(YEAR));
68
69
70
71 Assert.assertTrue("Page does not contain planned leave ",
72 leaveBlockDisplayPage.asText().contains("Send for Approval"));
73
74
75 Assert.assertTrue("Page does not contain approved leaves ",
76 leaveBlockDisplayPage.asText().contains("Updated by others"));
77
78
79 Assert.assertTrue("Page does not contain approved leaves ",
80 leaveBlockDisplayPage.asText().contains("Updated by self"));
81
82
83 Assert.assertTrue("Page does not contain Document Status ",
84 leaveBlockDisplayPage.asText().contains("Document Status"));
85 Assert.assertTrue("Page does not contain 'FINAL' Document Status ",
86 leaveBlockDisplayPage.asText().contains("FINAL"));
87
88
89 Assert.assertTrue("Page does not contain Planning Status ",
90 leaveBlockDisplayPage.asText().contains("Planning Status"));
91
92
93 HtmlButton nextButton = (HtmlButton) leaveBlockDisplayPage
94 .getElementById("nav_lb_next");
95 leaveBlockDisplayPage = nextButton.click();
96
97
98 Assert.assertTrue("Page does not contain next year ",
99 leaveBlockDisplayPage.asText().contains(String.valueOf(Integer.valueOf(YEAR) + 1)));
100 }
101
102 }