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.conditionalresults;
017    
018    import org.junit.Assert;
019    import org.kuali.rice.testtools.selenium.SmokeTestBase;
020    import org.junit.Test;
021    
022    import static org.junit.Assert.assertEquals;
023    
024    /**
025     * @author Kuali Rice Team (rice.collab@kuali.org)
026     */
027    public class DemoLookUpConditionalResultsBasedOnCriteriaSmokeTest extends SmokeTestBase {
028    
029        /**
030         * /kr-krad/lookup?methodToCall=start&viewId=LookupSampleViewConditionalResultsBasedOnCriteria
031         */
032        public static final String BOOKMARK_URL = "/kr-krad/lookup?methodToCall=start&viewId=LookupSampleViewConditionalResultsBasedOnCriteria";
033    
034        /**
035         *  lookupCriteria[number]
036         */
037        private static final String LOOKUP_CRITERIA_TYPE_CODE="lookupCriteria[typeCode]";
038    
039        /**
040         *  Search
041         */
042        private static final String SEARCH="Search";
043    
044        /**
045         *  Principal Name column
046         */
047        private static final String PRINCIPAL_NAME_COLUMN_NAME = "Principal Name";
048    
049        /**
050         *  Group Name column
051         */
052        private static final String GROUP_NAME_COLUMN_NAME = "Group Name";
053    
054        /**
055         *  Role Name column
056         */
057        private static final String ROLE_NAME_COLUMN_NAME = "Role Name";
058    
059        /**
060         *  Description column
061         */
062        private static final String DESCRIPTION_COLUMN_NAME = "Description";
063    
064        @Override
065        public String getBookmarkUrl() {
066            return BOOKMARK_URL;
067        }
068    
069        @Override
070        protected void navigate() throws Exception {
071            waitAndClickById("Demo-DemoLink", "");
072            waitAndClickByLinkText("Lookup Conditional Results Based On Criteria");
073        }
074    
075        protected void testLookUpConditionalResultsBasedOnCriteria() throws InterruptedException {
076            // Case 1 - Search by Principal
077            waitAndTypeByName(LOOKUP_CRITERIA_TYPE_CODE,"P");
078            waitAndClickButtonByText(SEARCH);
079            Thread.sleep(3000);
080            Assert.assertEquals(1, getCssCount("div#uLookupResults thead th"));
081            assertElementPresent("div#uLookupResults thead th:nth-child(1)");
082            assertTextPresent(PRINCIPAL_NAME_COLUMN_NAME, "div#uLookupResults thead th:nth-child(1) label",
083                    "Principal Name column not present");
084    
085            // Case 2 - Search by Group
086            waitAndTypeByName(LOOKUP_CRITERIA_TYPE_CODE, "G");
087            waitAndClickButtonByText(SEARCH);
088            Thread.sleep(3000);
089            Assert.assertEquals(2, getCssCount("div#uLookupResults thead th"));
090            assertElementPresent("div#uLookupResults thead th:nth-child(1)");
091            assertTextPresent(GROUP_NAME_COLUMN_NAME, "div#uLookupResults thead th:nth-child(1) label",
092                    "Group Name column not present");
093            assertElementPresent("div#uLookupResults thead th:nth-child(2)");
094            assertTextPresent(DESCRIPTION_COLUMN_NAME, "div#uLookupResults thead th:nth-child(2) label",
095                    "Description column not present");
096    
097            // Case 3 - Search by Role
098            waitAndTypeByName(LOOKUP_CRITERIA_TYPE_CODE, "R");
099            waitAndClickButtonByText(SEARCH);
100            Thread.sleep(3000);
101            Assert.assertEquals(2, getCssCount("div#uLookupResults thead th"));
102            assertTextPresent(ROLE_NAME_COLUMN_NAME, "div#uLookupResults thead th:nth-child(1) label",
103                    "Role Name column not present");
104            assertElementPresent("div#uLookupResults thead th:nth-child(2)");
105            assertTextPresent(DESCRIPTION_COLUMN_NAME, "div#uLookupResults thead th:nth-child(2) label",
106                    "Description column not present");
107        }
108    
109        @Test
110        public void testLookUpConditionalResultsBasedOnCriteriaBookmark() throws Exception {
111            testLookUpConditionalResultsBasedOnCriteria();
112            passed();
113        }
114    
115        @Test
116        public void testLookUpConditionalResultsBasedOnCriteriaNav() throws Exception {
117            testLookUpConditionalResultsBasedOnCriteria();
118            passed();
119        }
120    }