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
017 package edu.samplu.krad.validationmessagesview;
018
019 import edu.samplu.common.WebDriverLegacyITBase;
020 import org.junit.Test;
021 import org.openqa.selenium.By;
022
023 import static com.thoughtworks.selenium.SeleneseTestBase.assertTrue;
024
025 /**
026 * @author Kuali Rice Team (rice.collab@kuali.org)
027 */
028 public class ServerWarningsLegacyIT extends WebDriverLegacyITBase {
029 @Override
030 public String getTestUrl() {
031 return "/kr-krad/uicomponents?viewId=Demo-ValidationLayout&methodToCall=start";
032 }
033
034 @Test
035 public void testServerWarningsIT() throws Exception {
036 waitAndClickByXpath("//button[contains(.,'Get Warning Messages')]");
037 waitForPageToLoad();
038 Thread.sleep(3000);
039 assertTrue( "div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"] not visible",
040 isVisible("div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"]"));
041 assertTrue("div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"] .uif-warningMessageItem not present",
042 isElementPresent("div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"] .uif-warningMessageItem"));
043 assertTrue("div[data-messagesfor=\"Demo-ValidationLayout-Section1\"] not visible", isVisible(
044 "div[data-messagesfor=\"Demo-ValidationLayout-Section1\"]"));
045 assertTrue("div[data-messagesfor=\"Demo-ValidationLayout-Section1\"] .uif-warningMessageItem not present",
046 isElementPresent("div[data-messagesfor=\"Demo-ValidationLayout-Section1\"] .uif-warningMessageItem"));
047 assertTrue("div[data-role=\"InputField\"] img[alt=\"Warning\"] not present", isElementPresent(
048 "div[data-role=\"InputField\"] img[alt=\"Warning\"]"));
049 fireMouseOverEvent(By.xpath("//a[contains(.,'Field 1')]"));
050 assertTrue(".uif-warningHighlight no present when //a[contains(.,'Field 1')] is moused over",
051 isElementPresent(".uif-warningHighlight"));
052 waitAndClickByXpath("//a[contains(.,'Field 1')]");
053 waitForElementVisible(".jquerybubblepopup-innerHtml", " after click on //a[contains(.,'Field 1')]");
054
055 assertTrue(".jquerybubblepopup-innerHtml > .uif-serverMessageItems not visible", isVisible(
056 ".jquerybubblepopup-innerHtml > .uif-serverMessageItems"));
057 assertTrue(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field not visible",
058 isVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field"));
059 waitAndTypeByName("field1", "");
060 fireEvent("field1","blur");
061 fireMouseOverEventByName("field1");
062 // fireEvent("field1","hover");
063 waitForElementVisible(".jquerybubblepopup-innerHtml", " not visible after typing nothing in name=field1 then firing blur and focus events");
064
065 assertTrue(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field not visible after typing nothing in name=field1 then firing blur and focus events",
066 isVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field"));
067
068 waitForElementVisible(".jquerybubblepopup-innerHtml> .uif-clientMessageItems", " not visible after typing nothing in name=field1 then firing blur and focus events");
069
070 assertTrue(".jquerybubblepopup-innerHtml > .uif-clientMessageItems .uif-errorMessageItem-field not visible after typing nothing in name=field1 then firing blur and focus events",
071 isVisible(".jquerybubblepopup-innerHtml > .uif-clientMessageItems .uif-errorMessageItem-field"));
072
073 waitAndTypeByName("field1", "b");
074 fireEvent("field1","blur");
075 fireMouseOverEventByName("field1");
076 // fireEvent("field1","hover");
077 waitForElementVisible(".jquerybubblepopup-innerHtml> .uif-serverMessageItems","");
078
079 assertTrue(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field not visible after typing b in name=field1 then firing blur and focus events",
080 isVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field"));
081 assertTrue(".jquerybubblepopup-innerHtml > .uif-clientMessageItems", !isElementPresent(
082 ".jquerybubblepopup-innerHtml > .uif-clientMessageItems"));
083
084 // waitAndTypeByName("field1", "");
085 clearTextByName("field1");
086 // fireEvent("field1", "focus");
087 fireEvent("field1", "blur");
088 fireMouseOverEventByName("field1");
089 // fireEvent("field1","hover");
090 assertTrue(".uif-hasError is not present after typing nothing in name=field1 and then firing focus and blur events",
091 isElementPresent(".uif-hasError"));
092 assertTrue( "img[src*=\"error.png\"] is not present after typing nothing in name=field1 and then firing focus and blur events",
093 isElementPresent("img[src*=\"error.png\"]"));
094 passed();
095 }
096
097 private void typeBlurFocus(String name, String text) throws InterruptedException{
098 waitAndTypeByName(name, text);
099 fireEvent(name, "blur");
100 fireEvent(name, "focus");
101 }
102 }