001 /** 002 * Copyright 2004-2014 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.time.department.lunch; 017 import org.apache.log4j.Logger; 018 import org.junit.Assert; 019 import org.junit.Test; 020 import org.kuali.hr.KPMEWebTestCase; 021 import org.kuali.hr.util.HtmlUnitUtil; 022 import org.kuali.kpme.core.FunctionalTest; 023 import org.kuali.kpme.core.util.HrTestConstants; 024 import org.kuali.kpme.tklm.utils.TkTestConstants; 025 026 import com.gargoylesoftware.htmlunit.html.HtmlInput; 027 import com.gargoylesoftware.htmlunit.html.HtmlPage; 028 029 @FunctionalTest 030 public class DepartmentLunchRuleMaintTest extends KPMEWebTestCase { 031 private static final Logger LOG = Logger.getLogger(DepartmentLunchRuleMaintTest.class); 032 private static final String TEST_CODE = "admin"; 033 private static String TEST_CODE_DEPT_INVALID = "INVALID"; 034 private static Long TEST_CODE_WORKAREA_INVALID = 9999L; 035 036 private static Long deptLunchRuleIdWithInvalidDept = 1L; 037 private static Long deptLunchRuleIdWithInvalidWorkArea = 2L; 038 039 /** 040 * Test to check whether it is showing error message for Department on maintenance screen 041 * if we supply non exist deptId 042 * 043 * @throws Exception 044 */ 045 @Test 046 public void testDepartmentLunchRuleMaintForDeptErrorMessage() 047 throws Exception { 048 HtmlPage departmentLunchRuleLookUp = HtmlUnitUtil 049 .gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.DEPT_LUNCH_RULE_MAINT_URL); 050 departmentLunchRuleLookUp = HtmlUnitUtil.clickInputContainingText( 051 departmentLunchRuleLookUp, "search"); 052 Assert.assertTrue("Page contains test DepartmentLunchRule", 053 departmentLunchRuleLookUp.asText().contains(TEST_CODE)); 054 HtmlPage maintPage = HtmlUnitUtil.clickAnchorContainingText( 055 departmentLunchRuleLookUp, "edit", 056 deptLunchRuleIdWithInvalidDept.toString()); 057 HtmlUnitUtil.createTempFile(maintPage); 058 059 HtmlInput inputForDept = HtmlUnitUtil.getInputContainingText(maintPage, 060 "newMaintainableObject.dept"); 061 inputForDept.setValueAttribute(TEST_CODE_DEPT_INVALID); 062 HtmlInput inputForDescription = HtmlUnitUtil.getInputContainingText( 063 maintPage, "* Document Description"); 064 inputForDescription.setValueAttribute("Description"); 065 HtmlPage resultantPageAfterEdit = HtmlUnitUtil 066 .clickInputContainingText(maintPage, "submit"); 067 LOG.debug(resultantPageAfterEdit.asText()); 068 Assert.assertTrue("Maintenance Page contains error message for dept", 069 resultantPageAfterEdit.asText().contains( 070 "The specified department '" + TEST_CODE_DEPT_INVALID 071 + "' does not exist.")); 072 } 073 074 /** 075 * Test to check whether it is showing error message for WorkArea on maintenance screen 076 * if we supply non exist workArea 077 * 078 * @throws Exception 079 */ 080 @Test 081 public void testDepartmentLunchRuleMaintForWorkAreaErrorMessage() 082 throws Exception { 083 HtmlPage departmentLunchRuleLookUp = HtmlUnitUtil 084 .gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.DEPT_LUNCH_RULE_MAINT_URL); 085 departmentLunchRuleLookUp = HtmlUnitUtil.clickInputContainingText( 086 departmentLunchRuleLookUp, "search"); 087 Assert.assertTrue("Page contains test DepartmentLunchRule", 088 departmentLunchRuleLookUp.asText().contains(TEST_CODE)); 089 HtmlPage maintPage = HtmlUnitUtil.clickAnchorContainingText( 090 departmentLunchRuleLookUp, "edit", 091 deptLunchRuleIdWithInvalidWorkArea.toString()); 092 HtmlUnitUtil.createTempFile(maintPage); 093 094 HtmlUnitUtil.setFieldValue(maintPage, "document.newMaintainableObject.workArea", Long.toString(TEST_CODE_WORKAREA_INVALID)); 095 // HtmlInput inputForWorkArea = HtmlUnitUtil.getInputContainingText(maintPage, 096 // "newMaintainableObject.workArea"); 097 // inputForWorkArea.setValueAttribute(Long.toString(TEST_CODE_WORKAREA_INVALID)); 098 HtmlInput inputForDescription = HtmlUnitUtil.getInputContainingText( 099 maintPage, "* Document Description"); 100 inputForDescription.setValueAttribute("Description"); 101 HtmlPage resultantPageAfterEdit = HtmlUnitUtil 102 .clickInputContainingText(maintPage, "submit"); 103 HtmlUnitUtil.createTempFile(resultantPageAfterEdit); 104 Assert.assertTrue("Maintenance Page contains contains error message for workarea", 105 resultantPageAfterEdit.asText().contains( 106 "The specified workArea '" + TEST_CODE_WORKAREA_INVALID 107 + "' does not exist.")); 108 } 109 110 @Test 111 public void testDepartmentLunchRuleMaintForMaxShiftHourErrorMessage() throws Exception { 112 HtmlPage departmentLunchRuleLookUp = HtmlUnitUtil 113 .gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.DEPT_LUNCH_RULE_MAINT_URL); 114 departmentLunchRuleLookUp = HtmlUnitUtil.clickInputContainingText( 115 departmentLunchRuleLookUp, "search"); 116 Assert.assertTrue("Page contains test DepartmentLunchRule", 117 departmentLunchRuleLookUp.asText().contains(TEST_CODE)); 118 HtmlPage maintPage = HtmlUnitUtil.clickAnchorContainingText( 119 departmentLunchRuleLookUp, "edit", 120 deptLunchRuleIdWithInvalidWorkArea.toString()); 121 122 HtmlUnitUtil.setFieldValue(maintPage, HrTestConstants.DOC_NEW_ELEMENT_ID_PREFIX + "shiftHours", "34"); 123 HtmlUnitUtil.setFieldValue(maintPage, "document.documentHeader.documentDescription", "test"); 124 HtmlPage resultantPageAfterEdit = HtmlUnitUtil.clickInputContainingText(maintPage, "submit"); 125 HtmlUnitUtil.createTempFile(resultantPageAfterEdit); 126 Assert.assertTrue("Maintenance Page contains contains error message for Shift Hours", 127 resultantPageAfterEdit.asText().contains("Shift Hour cannot be greater than 24.")); 128 } 129 130 @Test 131 public void testDepartmentLunchRuleMaint() throws Exception { 132 HtmlPage departmentLunchRuleLookUp = HtmlUnitUtil 133 .gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.DEPT_LUNCH_RULE_MAINT_URL); 134 departmentLunchRuleLookUp = HtmlUnitUtil.clickInputContainingText( 135 departmentLunchRuleLookUp, "search"); 136 Assert.assertTrue("Page contains test DepartmentLunchRule", 137 departmentLunchRuleLookUp.asText().contains( 138 TEST_CODE.toString())); 139 HtmlPage maintPage = HtmlUnitUtil.clickAnchorContainingText( 140 departmentLunchRuleLookUp, "edit", 141 deptLunchRuleIdWithInvalidDept.toString()); 142 Assert.assertTrue("Maintenance Page contains test DepartmentLunchRule", 143 maintPage.asText().contains(TEST_CODE.toString())); 144 } 145 }