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