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.leaveplan;
017
018 import junit.framework.Assert;
019
020 import org.apache.log4j.Logger;
021 import org.junit.Test;
022 import org.kuali.hr.test.KPMETestCase;
023 import org.kuali.hr.time.test.HtmlUnitUtil;
024 import org.kuali.hr.time.test.TkTestConstants;
025
026 import com.gargoylesoftware.htmlunit.html.HtmlCheckBoxInput;
027 import com.gargoylesoftware.htmlunit.html.HtmlInput;
028 import com.gargoylesoftware.htmlunit.html.HtmlPage;
029
030 public class LeavePlanMaintTest extends KPMETestCase {
031 private static final Logger LOG = Logger.getLogger(LeavePlanMaintTest.class);
032 public static final String TEST_USER = "admin";
033
034
035
036 @Test
037 public void testLeavePlanMonthsSave() throws Exception {
038
039 //get the page with planning months
040 HtmlPage leavePlan = HtmlUnitUtil.gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.LEAVE_PLAN_MAINT_URL);
041 LOG.debug("Leave plan text page is : " + leavePlan.asText());
042 HtmlPage resultPage = HtmlUnitUtil.clickInputContainingText(leavePlan, "search");
043 HtmlUnitUtil.createTempFile(resultPage);
044 LOG.debug("Result page is : "+resultPage.asText());
045 Assert.assertTrue("Maintenance page contains:\n" + "Testing Leave Plan Months", resultPage.asText().contains("Testing Leave Plan Months"));
046
047 //submit a leave plan with planning months changed
048 HtmlPage leavePlanMaintPage = HtmlUnitUtil.clickAnchorContainingText(resultPage, "edit", "5555");
049 setFieldValue(leavePlanMaintPage, "document.documentHeader.documentDescription", "LeavePlan change planningMonths - test");
050 setFieldValue(leavePlanMaintPage, "document.newMaintainableObject.effectiveDate", "01/01/2013");
051 HtmlInput planningMonthsText = HtmlUnitUtil.getInputContainingText(leavePlanMaintPage, "document.newMaintainableObject.planningMonths");
052
053 // KPME- Kagata - value is between 1 and 24 now
054 planningMonthsText.setValueAttribute("999"); //max value
055 HtmlPage outputPage = HtmlUnitUtil.clickInputContainingText(leavePlanMaintPage, "submit");
056 HtmlUnitUtil.createTempFile(outputPage);
057 //assertTrue("Maintenance page text contains:\n" + "Document was successfully submitted", outputPage.asText().contains("Document was successfully submitted"));
058 //assertTrue("Maintenance page contains:\n" + "Planning Months changed to 999", outputPage.asText().contains("999"));
059 Assert.assertTrue("Maintenance page text contains:\n" + "\'Planning Months\' should be between 1 and 24", outputPage.asText().contains("\'Planning Months\' should be between 1 and 24"));
060
061 planningMonthsText.setValueAttribute("0");
062 outputPage = HtmlUnitUtil.clickInputContainingText(leavePlanMaintPage, "submit");
063 HtmlUnitUtil.createTempFile(outputPage);
064 Assert.assertTrue("Maintenance page text contains:\n" + "\'Planning Months\' should be between 1 and 24", outputPage.asText().contains("\'Planning Months\' should be between 1 and 24"));
065
066 planningMonthsText.setValueAttribute("24");
067 outputPage = HtmlUnitUtil.clickInputContainingText(leavePlanMaintPage, "submit");
068 HtmlUnitUtil.createTempFile(outputPage);
069 Assert.assertTrue("Maintenance page text contains:\n" + "Document was successfully submitted", outputPage.asText().contains("Document was successfully submitted"));
070 Assert.assertTrue("Maintenance page contains:\n" + "Planning Months changed to 24", outputPage.asText().contains("24"));
071
072 }
073
074 // KPME-1250 Kagata
075 @Test
076 public void testInactivateLeavePlan() throws Exception {
077
078 //get the page with planning months
079 HtmlPage leavePlan = HtmlUnitUtil.gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.LEAVE_PLAN_MAINT_URL);
080 HtmlPage resultPage = HtmlUnitUtil.clickInputContainingText(leavePlan, "search");
081 HtmlUnitUtil.createTempFile(resultPage);
082 Assert.assertTrue("Maintenance page contains:\n" + "Testing LP Inactive Flag", resultPage.asText().contains("Testing LP Inactive Flag"));
083
084 HtmlPage leavePlanMaintPage = HtmlUnitUtil.clickAnchorContainingText(resultPage, "edit", "2000");
085 setFieldValue(leavePlanMaintPage, "document.documentHeader.documentDescription", "LeavePlan change active flag");
086 HtmlCheckBoxInput activeCheckbox = (HtmlCheckBoxInput) HtmlUnitUtil.getInputContainingText(leavePlanMaintPage, "document.newMaintainableObject.active");
087 activeCheckbox.setChecked(false);
088
089 HtmlPage outputPage = HtmlUnitUtil.clickInputContainingText(leavePlanMaintPage, "submit");
090 HtmlUnitUtil.createTempFile(outputPage);
091
092 }
093
094 // KPME-1489 Kagata
095 @Test
096 public void testRequiredFields() throws Exception {
097
098 //get the page with planning months
099 HtmlPage leavePlan = HtmlUnitUtil.gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.LEAVE_PLAN_MAINT_URL);
100 HtmlPage resultPage = HtmlUnitUtil.clickInputContainingText(leavePlan, "search");
101 HtmlUnitUtil.createTempFile(resultPage);
102 Assert.assertTrue("Maintenance page contains:\n" + "Testing Leave Plan Months", resultPage.asText().contains("Testing Leave Plan Months"));
103
104 HtmlPage leavePlanMaintPage = HtmlUnitUtil.clickAnchorContainingText(resultPage, "edit", "5555");
105 //submit a leave plan with planning months changed
106 setFieldValue(leavePlanMaintPage, "document.documentHeader.documentDescription", "Testing required fields");
107 HtmlInput planningMonthsText = HtmlUnitUtil.getInputContainingText(leavePlanMaintPage, "document.newMaintainableObject.planningMonths");
108 HtmlInput calendarYearStartText = HtmlUnitUtil.getInputContainingText(leavePlanMaintPage, "document.newMaintainableObject.calendarYearStart");
109
110 planningMonthsText.setValueAttribute("");
111 calendarYearStartText.setValueAttribute("");
112 HtmlPage outputPage = HtmlUnitUtil.clickInputContainingText(leavePlanMaintPage, "submit");
113 HtmlUnitUtil.createTempFile(outputPage);
114 Assert.assertTrue("Maintenance page text contains:\n" + "Planning Months (Planning Months) is a required field", outputPage.asText().contains("Planning Months (Planning Months) is a required field"));
115 Assert.assertTrue("Maintenance page text contains:\n" + "Calendar Year Start (MM/DD) (Calendar Year Start (MM/DD)) is a required field", outputPage.asText().contains("Calendar Year Start (MM/DD) (Calendar Year Start (MM/DD)) is a required field"));
116
117 setFieldValue(outputPage, "document.newMaintainableObject.effectiveDate", "");
118 HtmlPage page = HtmlUnitUtil.clickInputContainingText(outputPage, "submit");
119 Assert.assertTrue("Maintenance page text contains:\n" + "Effective Date (Effective Date) is a required field.", page.asText().contains("Effective Date (Effective Date) is a required field."));
120 Assert.assertFalse("Maintenance page text contains:\n" + "Incident Report", page.asText().contains("Incident Report "));
121
122 }
123
124
125 }