001 /** 002 * Copyright 2004-2013 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.hr.lm.leave.web; 017 018 import junit.framework.Assert; 019 020 import org.junit.After; 021 import org.junit.Before; 022 import org.junit.Ignore; 023 import org.junit.Test; 024 import org.kuali.hr.test.KPMETestCase; 025 import org.kuali.hr.time.test.HtmlUnitUtil; 026 import org.kuali.hr.time.test.TkTestConstants; 027 028 import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController; 029 import com.gargoylesoftware.htmlunit.WebClient; 030 import com.gargoylesoftware.htmlunit.html.HtmlCheckBoxInput; 031 import com.gargoylesoftware.htmlunit.html.HtmlElement; 032 import com.gargoylesoftware.htmlunit.html.HtmlPage; 033 034 public class LeaveRequestWebTest extends KPMETestCase { 035 036 @Before 037 public void setUp() throws Exception { 038 super.setUp(); 039 } 040 041 @After 042 public void tearDown() throws Exception { 043 super.tearDown(); 044 } 045 046 public void setWebClient(WebClient webClient) { 047 webClient.setJavaScriptEnabled(true); 048 webClient.setThrowExceptionOnScriptError(true); 049 webClient.setAjaxController(new NicelyResynchronizingAjaxController()); 050 webClient.waitForBackgroundJavaScript(10000); 051 } 052 053 @Test 054 @Ignore 055 public void testLeaveRequestPage() throws Exception { 056 // get the page and Login 057 HtmlPage leaveRequestPage = HtmlUnitUtil 058 .gotoPageAndLogin(TkTestConstants.Urls.LEAVE_REQUEST_PAGE_URL); 059 Assert.assertNotNull("Leave Request page not found" + leaveRequestPage); 060 061 // Check planned requests 062 Assert.assertTrue("Page does not contain planned leave ", leaveRequestPage 063 .asText().contains("Send for Approval")); 064 065 // check Approved Leaves 066 Assert.assertTrue("Page does not contain approved leaves ", leaveRequestPage 067 .asText().contains("Approved Leave")); 068 069 // check disapproved Leaves 070 Assert.assertTrue("Page does not contain approved leaves ", leaveRequestPage 071 .asText().contains("Disapprove")); 072 073 HtmlCheckBoxInput htmlElement = (HtmlCheckBoxInput) leaveRequestPage 074 .getElementByName("plannedLeaves[0].submit"); 075 leaveRequestPage = (HtmlPage) htmlElement.setValueAttribute("true"); 076 077 HtmlCheckBoxInput checkbox = (HtmlCheckBoxInput) HtmlUnitUtil 078 .getInputContainingText(leaveRequestPage, 079 "plannedLeaves[0].submit"); 080 checkbox.setChecked(true); 081 082 HtmlElement elementSubmit = leaveRequestPage.getElementByName("Submit"); 083 Assert.assertNotNull(elementSubmit); 084 085 HtmlUnitUtil.createTempFile(leaveRequestPage); 086 087 HtmlPage leaveRequestPage1 = elementSubmit.click(); 088 089 HtmlUnitUtil.createTempFile(leaveRequestPage1); 090 091 // check if submitted pending leave comes in the section of Requested 092 // leave 093 Assert.assertTrue("Page does not contain Pending leave ", leaveRequestPage1 094 .asText().contains("Send for Approval")); 095 096 } 097 098 }