001    
002    /*
003     * Copyright 2006-2012 The Kuali Foundation
004     *
005     * Licensed under the Educational Community License, Version 2.0 (the "License");
006     * you may not use this file except in compliance with the License.
007     * You may obtain a copy of the License at
008     *
009     * http://www.opensource.org/licenses/ecl2.php
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    
018    package edu.samplu.krad.validationmessagesview;
019    
020    import junit.framework.Assert;
021    
022    import org.junit.Test;
023    import org.openqa.selenium.By;
024    
025    import edu.samplu.common.WebDriverLegacyITBase;
026    
027    /**
028     * @author Kuali Rice Team (rice.collab@kuali.org)
029     */
030    public class ServerErrorsLegacyIT extends WebDriverLegacyITBase {
031    
032        @Override
033        public String getTestUrl() {
034            return "/kr-krad/uicomponents?viewId=Demo-ValidationLayout&methodToCall=start";
035        }
036    
037        @Test
038        public void testServerErrorsIT() throws Exception {
039            waitAndClickByXpath("//button[contains(.,'Get Error Messages')]");
040            waitForPageToLoad();
041    //        Assert.assertTrue(isVisible("css=div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"]")); // bugged isVisible? you can see it on the screen...
042            Thread.sleep(5000);
043            assertElementPresent("div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"] .uif-errorMessageItem");
044            waitIsVisibleByXpath("//div[@data-headerfor='Demo-ValidationLayout-Section1']");
045            assertElementPresentByXpath("//*[@data-messageitemfor='Demo-ValidationLayout-Section1' and @class='uif-errorMessageItem']");
046            assertElementPresent("div[data-role=\"InputField\"] img[alt=\"Error\"]");
047            assertElementPresentByXpath("//a[contains(.,'Section 1 Title')]");
048           // waitAndClickByXpath("//a[contains(.,'Section 1 Title')]");
049            fireMouseOverEventByXpath("//a[contains(.,'Field 1')]");
050            assertElementPresent(".uif-errorMessageItem-field");
051            waitAndClickByXpath("//a[contains(.,'Field 1')]");
052            Thread.sleep(2000);
053            waitIsVisible(".jquerybubblepopup-innerHtml");
054    
055            waitIsVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems");
056            waitIsVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-errorMessageItem-field");
057            waitAndTypeByName("field1", "");
058            fireEvent("field1", "blur");
059            fireEvent("field1", "focus");
060            waitIsVisible(".jquerybubblepopup-innerHtml");
061    
062            waitIsVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-errorMessageItem-field");
063            waitIsVisible(".jquerybubblepopup-innerHtml > .uif-clientMessageItems");
064            waitIsVisible(".jquerybubblepopup-innerHtml > .uif-clientMessageItems  .uif-errorMessageItem-field");
065            waitAndTypeByName("field1", "t");
066        //    keyDown(By.name("field1"), Keys('t'));
067        //    keyPress("name=field1", "t");
068        //    keyUp("field1", "t");
069            for (int second = 0; ; second++) {
070                if (second >= 60) {
071                    Assert.fail("timeout");
072                }
073                try {
074                    if (!isElementPresent(".jquerybubblepopup-innerHtml > .uif-clientMessageItems")) {
075                        break;
076                    }
077                } catch (Exception e) {
078                }
079                Thread.sleep(1000);
080            }
081    
082            waitIsVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-errorMessageItem-field");
083            Assert.assertFalse(isElementPresent(".jquerybubblepopup-innerHtml > .uif-clientMessageItems"));
084        }
085    }