001    /**
002     * Copyright 2005-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 edu.samplu.krad.labs.lookups;
017    
018    import org.junit.Test;
019    
020    /**
021     * @author Kuali Rice Team (rice.collab@kuali.org)
022     */
023    public class DemoLabsLookUpConditionalCriteriaSmokeTest extends DemoLabsLookupBase {
024    
025        /**
026         * /kr-krad/lookup?methodToCall=start&viewId=LabsLookup-ConditionalCriteriaView&hideReturnLink=true
027         */
028        public static final String BOOKMARK_URL = "/kr-krad/lookup?methodToCall=start&viewId=LabsLookup-ConditionalCriteriaView&hideReturnLink=true";
029    
030        /**
031         *  lookupCriteria[number]
032         */
033        private static final String LOOKUP_CRITERIA_NUMBER_NAME="lookupCriteria[number]";
034        
035        /**
036         *  Search
037         */
038        private static final String SEARCH="Search";
039        
040        /**
041         *  lookupCriteria[rangeLowerBoundKeyPrefix_createDate]
042         */
043        private static final String LOOKUP_CRITERIA_DATE_NAME="lookupCriteria[rangeLowerBoundKeyPrefix_createDate]";
044        
045        /**
046         *  Not read only. Date input field present.
047         */
048        private static final String FAILURE_MESSAGE="Not read only. Date input field present.";
049        
050        /**
051         *  Date Created:
052         */
053        private static final String DATE_CREATED_LABEL="Date Created:";
054        
055        /**
056         *  Date Created is a required field.
057         */
058        private static final String DATE_REQUIRED_MESSAGE="Date Created is a required field.";
059        
060        /**
061         *  LookUp Criteria Name 
062         */
063        private static final String LOOKUP_CRITERIA_NAME_NAME="lookupCriteria[name]";
064        
065        @Override
066        protected String getBookmarkUrl() {
067            return BOOKMARK_URL;
068        }
069    
070        @Override
071        protected void navigate() throws Exception {
072            navigateToLookup("Lookup Conditional Criteria");
073        }
074    
075        protected void testLookUpConditionalCriteria() throws InterruptedException {
076            //Case 1 - Date field required by number a1
077            //It requires "Search" to be clicked twice, for the date required message to show.
078            waitAndTypeByName(LOOKUP_CRITERIA_NUMBER_NAME,"a1");
079            waitAndClickButtonByText(SEARCH);
080            Thread.sleep(10000); // If we don't wait long enough we'll get concurrency issues.
081            checkForIncidentReport(SEARCH, "DemoLookUpConditionalCriteriaSmokeTest testLookUpConditionalCriteria");
082            waitAndClickButtonByText(SEARCH);
083            Thread.sleep(3000);
084            checkForIncidentReport();
085            assertTextPresent(DATE_REQUIRED_MESSAGE);
086            
087            //Case 2 - Date field read only by number a2
088            clearTextByName(LOOKUP_CRITERIA_NUMBER_NAME);
089            waitAndTypeByName(LOOKUP_CRITERIA_NUMBER_NAME,"a2");
090            waitAndTypeByName(LOOKUP_CRITERIA_NAME_NAME,"");
091            Thread.sleep(2000);
092            if(isElementPresentByName(LOOKUP_CRITERIA_DATE_NAME)) {
093                fail(FAILURE_MESSAGE);
094            }
095            
096            //Case 3 - Date field hide by number a3
097            clearTextByName(LOOKUP_CRITERIA_NUMBER_NAME);
098            waitAndTypeByName(LOOKUP_CRITERIA_NUMBER_NAME,"a3");
099            waitAndClickButtonByText(SEARCH);
100            Thread.sleep(3000);
101            assertTextNotPresent(DATE_CREATED_LABEL);
102        }
103    
104        @Test
105        public void testLookUpConditionalCriteriaBookmark() throws Exception {
106            testLookUpConditionalCriteria();
107            passed();
108        }
109    
110        @Test
111        public void testLookUpConditionalCriteriaNav() throws Exception {
112            testLookUpConditionalCriteria();
113            passed();
114        }
115    }