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.core.kfs;
017
018 import static org.junit.Assert.assertNotNull;
019 import static org.junit.Assert.assertTrue;
020
021 import java.util.HashMap;
022 import java.util.Map;
023 import java.util.Map.Entry;
024
025 import org.junit.Test;
026 import org.kuali.hr.KPMEWebTestCase;
027 import org.kuali.hr.util.HtmlUnitUtil;
028 import org.kuali.kpme.core.util.HrTestConstants;
029
030 import com.gargoylesoftware.htmlunit.html.HtmlInput;
031 import com.gargoylesoftware.htmlunit.html.HtmlPage;
032
033 public class ChartMaintTest extends KPMEWebTestCase {
034
035 private String newUrl;
036 private String lookupUrl;
037 private Map<String,String> requiredFields;
038
039 private void before() {
040 newUrl = HrTestConstants.Urls.CHART_MAINT_NEW_URL;
041 lookupUrl = HrTestConstants.Urls.CHART_MAINT_URL;
042
043 requiredFields = new HashMap<String,String>();
044 requiredFields.put("chartOfAccountsCode", "Chart Code (Chart) is a required field.");
045 requiredFields.put("finChartOfAccountDescription", "Chart Description (Description) is a required field.");
046 }
047
048 private void after() {
049 requiredFields.clear();
050 }
051
052 @Test
053 public void testRequiredFields() throws Exception {
054 HtmlPage maintPage = HtmlUnitUtil.gotoPageAndLogin(getWebClient(), newUrl);
055 assertNotNull("maintenance page is null", maintPage);
056
057 HtmlInput docDescription = HtmlUnitUtil.getInputContainingText(maintPage, "* Document Description");
058 assertNotNull("maintenance page does not contain document description", docDescription);
059
060 docDescription.setValueAttribute("testing submission");
061
062 HtmlPage resultPage = HtmlUnitUtil.clickInputContainingText(maintPage, "submit");
063 assertNotNull("no result page returned after submit", resultPage);
064
065 String resultPageAsText = resultPage.asText();
066 for(Entry<String,String> requiredField : requiredFields.entrySet()) {
067 assertTrue("page does not contain error message for required field: '" + requiredField.getKey() + "'",
068 resultPageAsText.contains(requiredField.getValue()));
069 }
070 }
071
072 @Test
073 public void testLookup() throws Exception {
074 HtmlPage lookupPage = HtmlUnitUtil.gotoPageAndLogin(getWebClient(), lookupUrl);
075 assertNotNull("lookup page is null", lookupPage);
076
077 lookupPage = HtmlUnitUtil.clickInputContainingText(lookupPage, "search");
078 assertNotNull("lookup result page is null", lookupPage);
079
080 }
081
082 @Override
083 public void setUp() throws Exception {
084 super.setUp();
085 before();
086 }
087
088 @Override
089 public void tearDown() throws Exception {
090 after();
091 super.tearDown();
092 }
093 }