001    /*
002     * Copyright 2006-2012 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.compview;
017    
018    import edu.samplu.common.WebDriverLegacyITBase;
019    
020    import junit.framework.Assert;
021    import org.junit.Test;
022    
023    import static com.thoughtworks.selenium.SeleneseTestBase.assertTrue;
024    
025    /**
026     * Selenium test that tests that tooltips are rendered on mouse over and focus events and hidden on
027     * mouse out and blur events
028     * 
029     * @author Kuali Rice Team (rice.collab@kuali.org)
030     */
031    public class UifTooltipLegacyIT extends WebDriverLegacyITBase {
032        private static final String NAME_FIELD_1 = "field1";
033        private static final String NAME_FIELD_2 = "field2";
034        @Override
035        public String getTestUrl() {
036            // open Other Examples page in kitchen sink view
037            return "/kr-krad/uicomponents?viewId=UifCompView&methodToCall=start&pageId=UifCompView-Page10";
038        }
039    
040        @Test
041        public void testTooltip() throws Exception {
042            // check if tooltip opens on focus
043            fireEvent(NAME_FIELD_1, "focus");
044            fireMouseOverEventByName(NAME_FIELD_1);
045            Assert.assertTrue(isVisible("div.jquerybubblepopup.jquerybubblepopup-black")
046                    && isVisible("td.jquerybubblepopup-innerHtml"));
047            Assert.assertEquals("This tooltip is triggered by focus or and mouse over.", getText("td.jquerybubblepopup-innerHtml"));
048           
049            // check if tooltip closed on blur
050            fireEvent(NAME_FIELD_1, "blur");
051            Assert.assertFalse(isVisible("div.jquerybubblepopup.jquerybubblepopup-black")
052                    && isVisible("td.jquerybubblepopup-innerHtml"));
053            //Assert.assertFalse(isVisible("//td[contains(.,\"This tooltip is triggered by focus or and mouse over.\")]"));
054            
055            // check if tooltip opens on mouse over
056            fireMouseOverEventByName(NAME_FIELD_2);
057            Assert.assertTrue(isVisibleByXpath("//td[contains(.,\"This is a tool-tip with different position and tail options\")]"));
058            
059            // check if tooltip closed on mouse out
060            waitAndTypeByName(NAME_FIELD_2,"a");
061            Thread.sleep(5000);
062            Assert.assertFalse(isVisibleByXpath("//td[contains(.,\"This is a tool-tip with different position and tail options\")]"));
063            
064            // check that default tooltip does not display when there are an error message on the field
065            waitAndTypeByName(NAME_FIELD_1, "1");
066            fireEvent(NAME_FIELD_1, "blur");
067            fireEvent(NAME_FIELD_1, "focus");
068            fireMouseOverEventByName(NAME_FIELD_1);
069            Thread.sleep(5000);
070            assertTrue("https://jira.kuali.org/browse/KULRICE-8141 Investigate why UifTooltipIT.testTooltip fails around jquerybubblepopup",
071                    isVisibleByXpath("//div[@class='jquerybubblepopup jquerybubblepopup-kr-error-cs']") &&
072                    !(isVisibleByXpath("//div[@class='jquerybubblepopup jquerybubblepopup-black']")) &&
073                    isVisibleByXpath("//img[@class='uif-validationImage']"));
074            // TODO figure out this last assert
075            //Assert.assertFalse(isVisible("//td[contains(.,\"This tooltip is triggered by focus or and mouse over.\")]"));
076            passed();
077        }
078    }