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 }