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.ITUtil;
020    import edu.samplu.common.UpgradedSeleniumITBase;
021    import org.junit.Test;
022    
023    import static com.thoughtworks.selenium.SeleneseTestBase.assertTrue;
024    
025    /**
026     * @author Kuali Rice Team (rice.collab@kuali.org)
027     */
028    public class ServerWarningsIT extends UpgradedSeleniumITBase {
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                    waitAndClick("//button[contains(.,'Get Warning Messages')]");
037                    waitForPageToLoad();
038                    assertTrue( "css=div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"] not visible https://jira.kuali.org/browse/KULRICE-8140",
039                    isVisible("css=div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"]"));
040                    assertTrue("css=div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"] .uif-warningMessageItem not present",
041                    isElementPresent("css=div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"] .uif-warningMessageItem"));
042                    assertTrue("css=div[data-messagesfor=\"Demo-ValidationLayout-Section1\"] not visible", isVisible(
043                    "css=div[data-messagesfor=\"Demo-ValidationLayout-Section1\"]"));
044                    assertTrue("css=div[data-messagesfor=\"Demo-ValidationLayout-Section1\"] .uif-warningMessageItem not present",
045                    isElementPresent("css=div[data-messagesfor=\"Demo-ValidationLayout-Section1\"] .uif-warningMessageItem"));
046                    assertTrue("css=div[data-role=\"InputField\"] img[alt=\"Warning\"] not present", isElementPresent(
047                    "css=div[data-role=\"InputField\"] img[alt=\"Warning\"]"));
048                    mouseOver("//a[contains(.,'Field 1')]");
049                    assertTrue("css=.uif-warningHighlight no present when //a[contains(.,'Field 1')] is moused over",
050                    isElementPresent("css=.uif-warningHighlight"));
051                    waitAndClick("//a[contains(.,'Field 1')]");
052            waitForElementVisible("css=.jquerybubblepopup-innerHtml", " after click on //a[contains(.,'Field 1')]");
053    
054                    assertTrue("css=.jquerybubblepopup-innerHtml > .uif-serverMessageItems not visible", isVisible(
055                    "css=.jquerybubblepopup-innerHtml > .uif-serverMessageItems"));
056                    assertTrue("css=.jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field not visible",
057                    isVisible("css=.jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field"));
058            typeBlurFocus("name=field1", "");
059            fireEvent("name=field1","hover");
060            waitForElementVisible("css=.jquerybubblepopup-innerHtml", " not visible after typing nothing in name=field1 then firing blur and focus events");
061    
062                    assertTrue("css=.jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field not visible after typing nothing in name=field1 then firing blur and focus events",
063                    isVisible("css=.jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field"));
064    
065            waitForElementVisible("css=.jquerybubblepopup-innerHtml> .uif-clientMessageItems", " not visible after typing nothing in name=field1 then firing blur and focus events");
066    
067                    assertTrue("css=.jquerybubblepopup-innerHtml > .uif-clientMessageItems  .uif-errorMessageItem-field not visible after typing nothing in name=field1 then firing blur and focus events",
068                    isVisible("css=.jquerybubblepopup-innerHtml > .uif-clientMessageItems  .uif-errorMessageItem-field"));
069    
070            typeBlurFocus("name=field1", "b");
071            fireEvent("name=field1","hover");
072            waitForElementVisible("css=.jquerybubblepopup-innerHtml> .uif-serverMessageItems", " not visible after typing b in name=field1 then firing blur and focus events https://jira.kuali.org/browse/KULRICE-8140 Investigate Server Warnings");
073    
074                    assertTrue("css=.jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field not visible after typing b in name=field1 then firing blur and focus events",
075                    isVisible("css=.jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-warningMessageItem-field"));
076                    assertTrue("css=.jquerybubblepopup-innerHtml > .uif-clientMessageItems", !isElementPresent(
077                    "css=.jquerybubblepopup-innerHtml > .uif-clientMessageItems"));
078    
079                    waitAndType("name=field1", "");
080                    fireEvent("name=field1", "focus");
081                    fireEvent("name=field1", "blur");
082                    fireEvent("name=field1","hover");
083                    assertTrue("css=.uif-hasError is not present after typing nothing in name=field1 and then firing focus and blur events",
084                    isElementPresent("css=.uif-hasError"));
085                    assertTrue( "css=img[src*=\"error.png\"] is not present after typing nothing in name=field1 and then firing focus and blur events",
086                    isElementPresent("css=img[src*=\"error.png\"]"));
087            }
088    
089        private void typeBlurFocus(String name, String text) throws InterruptedException{
090            waitAndType(name, text);
091            fireEvent(name, "blur");
092            fireEvent(name, "focus");
093        }
094    }