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.WebDriverLegacyITBase;
021    
022    import junit.framework.Assert;
023    import org.junit.Test;
024    import org.openqa.selenium.By;
025    
026    /**
027     * @author Kuali Rice Team (rice.collab@kuali.org)
028     */
029    public class ServerInfoLegacyIT extends WebDriverLegacyITBase {
030        @Override
031        public String getTestUrl() {
032            return "/kr-krad/uicomponents?viewId=Demo-ValidationLayout&methodToCall=start";
033        }
034    
035        @Test
036        public void testServerInfoIT() throws Exception {
037            waitAndClickByXpath("//button[contains(.,'Get Info Messages')]");
038            waitIsVisibleByXpath("//div[@data-messagesfor='Demo-ValidationLayout-SectionsPage']");
039            //Thread.sleep(3000);
040            Assert.assertTrue(isVisibleByXpath("//div[@data-messagesfor='Demo-ValidationLayout-SectionsPage']"));
041            Assert.assertTrue(isElementPresent("div[data-messagesfor=\"Demo-ValidationLayout-SectionsPage\"] .uif-infoMessageItem"));
042            Assert.assertTrue(isVisible("div[data-messagesfor=\"Demo-ValidationLayout-Section1\"]"));
043            Assert.assertTrue(isElementPresent("div[data-messagesfor=\"Demo-ValidationLayout-Section1\"] .uif-infoMessageItem"));
044            Assert.assertTrue(isElementPresentByXpath("//div[@data-role='InputField']//img[@alt='Information']"));
045            fireMouseOverEventByXpath("//a[contains(.,'Field 1')]");
046            Assert.assertTrue(isElementPresent(".uif-infoHighlight"));
047            waitAndClickByXpath("//a[contains(.,'Field 1')]");
048            for (int second = 0;; second++) {
049                if (second >= 60) Assert.fail("timeout");
050                try { if (isVisible(".jquerybubblepopup-innerHtml")) break; } catch (Exception e) {}
051                Thread.sleep(1000);
052            }
053    
054            Assert.assertTrue(isVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems"));
055            Assert.assertTrue(isVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-infoMessageItem-field"));
056            waitAndTypeByName("field1", "");
057            fireEvent("field1", "blur");
058            fireEvent("field1", "focus");
059            for (int second = 0;; second++) {
060                if (second >= 60) Assert.fail("timeout");
061                try { if (isVisible(".jquerybubblepopup-innerHtml")) break; } catch (Exception e) {}
062                Thread.sleep(1000);
063            }
064    
065            Assert.assertTrue(isVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-infoMessageItem-field"));
066            for (int second = 0;; second++) {
067                if (second >= 60) Assert.fail("timeout");
068                try { if (isVisible(".jquerybubblepopup-innerHtml > .uif-clientMessageItems")) break; } catch (Exception e) {}
069                Thread.sleep(1000);
070            }
071    
072            Assert.assertTrue(isVisible(".jquerybubblepopup-innerHtml > .uif-clientMessageItems  .uif-errorMessageItem-field"));
073            waitAndTypeByName("field1", "b");
074            fireEvent("field1", "blur");
075            fireEvent("field1", "focus");
076            for (int second = 0;; second++) {
077                if (second >= 60) Assert.fail("timeout");
078                try { if (!isElementPresent(".jquerybubblepopup-innerHtml > .uif-clientMessageItems")) break; } catch (Exception e) {}
079                Thread.sleep(1000);
080            }
081            fireEvent("field1", "blur");
082            Thread.sleep(3000);
083            Assert.assertTrue(!isVisible(".jquerybubblepopup-innerHtml > .uif-serverMessageItems .uif-infoMessageItem-field"));
084            Assert.assertFalse(isElementPresent(".jquerybubblepopup-innerHtml > .uif-clientMessageItems"));
085            fireEvent("field1", "focus");
086            clearTextByName("field1");
087            fireEvent("field1", "blur");
088            Assert.assertTrue(isElementPresent("div.uif-hasError"));
089            Assert.assertTrue(isElementPresent("img[src*=\"error.png\"]"));
090        }
091    }