View Javadoc

1   /*
2    * Copyright 2006-2012 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package edu.samplu.krad.compview;
17  
18  import edu.samplu.common.WebDriverLegacyITBase;
19  
20  import junit.framework.Assert;
21  import org.junit.Test;
22  
23  import static com.thoughtworks.selenium.SeleneseTestBase.assertTrue;
24  
25  /**
26   * Selenium test that tests that tooltips are rendered on mouse over and focus events and hidden on
27   * mouse out and blur events
28   * 
29   * @author Kuali Rice Team (rice.collab@kuali.org)
30   */
31  public class UifTooltipLegacyIT extends WebDriverLegacyITBase {
32      private static final String NAME_FIELD_1 = "field1";
33      private static final String NAME_FIELD_2 = "field2";
34      @Override
35      public String getTestUrl() {
36          // open Other Examples page in kitchen sink view
37          return "/kr-krad/uicomponents?viewId=UifCompView&methodToCall=start&pageId=UifCompView-Page10";
38      }
39  
40      @Test
41      public void testTooltip() throws Exception {
42          // check if tooltip opens on focus
43          fireEvent(NAME_FIELD_1, "focus");
44          fireMouseOverEventByName(NAME_FIELD_1);
45          Assert.assertTrue(isVisible("div.jquerybubblepopup.jquerybubblepopup-black")
46                  && isVisible("td.jquerybubblepopup-innerHtml"));
47          Assert.assertEquals("This tooltip is triggered by focus or and mouse over.", getText("td.jquerybubblepopup-innerHtml"));
48         
49          // check if tooltip closed on blur
50          fireEvent(NAME_FIELD_1, "blur");
51          Assert.assertFalse(isVisible("div.jquerybubblepopup.jquerybubblepopup-black")
52                  && isVisible("td.jquerybubblepopup-innerHtml"));
53          //Assert.assertFalse(isVisible("//td[contains(.,\"This tooltip is triggered by focus or and mouse over.\")]"));
54          
55          // check if tooltip opens on mouse over
56          fireMouseOverEventByName(NAME_FIELD_2);
57          Assert.assertTrue(isVisibleByXpath("//td[contains(.,\"This is a tool-tip with different position and tail options\")]"));
58          
59          // check if tooltip closed on mouse out
60          waitAndTypeByName(NAME_FIELD_2,"a");
61          Thread.sleep(5000);
62          Assert.assertFalse(isVisibleByXpath("//td[contains(.,\"This is a tool-tip with different position and tail options\")]"));
63          
64          // check that default tooltip does not display when there are an error message on the field
65          waitAndTypeByName(NAME_FIELD_1, "1");
66          fireEvent(NAME_FIELD_1, "blur");
67          fireEvent(NAME_FIELD_1, "focus");
68          fireMouseOverEventByName(NAME_FIELD_1);
69          Thread.sleep(5000);
70          assertTrue("https://jira.kuali.org/browse/KULRICE-8141 Investigate why UifTooltipIT.testTooltip fails around jquerybubblepopup",
71                  isVisibleByXpath("//div[@class='jquerybubblepopup jquerybubblepopup-kr-error-cs']") &&
72                  !(isVisibleByXpath("//div[@class='jquerybubblepopup jquerybubblepopup-black']")) &&
73                  isVisibleByXpath("//img[@class='uif-validationImage']"));
74          // TODO figure out this last assert
75          //Assert.assertFalse(isVisible("//td[contains(.,\"This tooltip is triggered by focus or and mouse over.\")]"));
76          passed();
77      }
78  }