001    /**
002     * Copyright 2005-2014 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    package edu.sampleu.krad.screenelement;
017    
018    import org.junit.Test;
019    import org.kuali.rice.testtools.selenium.AutomatedFunctionalTestUtils;
020    import org.kuali.rice.testtools.selenium.WebDriverLegacyITBase;
021    import org.kuali.rice.testtools.selenium.WebDriverUtils;
022    
023    /**
024     * @author Kuali Rice Team (rice.collab@kuali.org)
025     */
026    public class DialogTestViewAft extends WebDriverLegacyITBase {
027    
028        /**
029         * /kr-krad/dialog-configuration-test?viewId=DialogTestView&methodToCall=start
030         */
031        public static final String BOOKMARK_URL ="/kr-krad/dialog-configuration-test?viewId=DialogTestView&methodToCall=start";
032    
033        @Override
034        protected String getBookmarkUrl() {
035            return BOOKMARK_URL;
036        }
037    
038        @Override
039        protected void navigate() throws InterruptedException {
040            waitAndClickKRAD();
041            waitAndClickByLinkText("Dialog Test View");
042            switchToWindow("Kuali :: Dialog Test View");
043        }
044        
045        private void testDialogTestView() throws Exception{
046            waitAndClickButtonByText("Lightbox from hidden group");
047            validateSelectAuthorDialog();
048            waitAndClickButtonByText("Lightbox from hidden group with overrides");
049            validateSelectAuthorDialog();
050            waitAndClickButtonByText("Lightbox from HTML");
051            validateDialogWithHTML();
052            waitAndClickButtonByText("Predefined OK/Cancel");
053            validateDialogWithPredefinedOkCancel();
054            waitAndClickButtonByText("Radio Buttons");
055            validateDialogWithRadioButton();
056            waitAndClickButtonByText("Lightbox from hidden group with progressive rendering");
057            validateDialogWithProgressiveRendering();
058            waitAndClickButtonByText("Lightbox from hidden image");
059            validateDialogWithHiddenImage();
060            waitAndClickButtonByText("Lightbox from URL");
061            validateDialogWithFormUrl();
062            waitAndClickButtonByText("Client Ajax Dialog");
063            validateDialogWithClientAjax();
064            waitAndClickButtonByText("Regular Group");
065            validateDialogWithRegularGroup();
066            waitAndClickButtonByText("Expression dialog");
067            validateDialogWithExpression();
068            waitAndClickButtonByText("Extended Dialog");
069            validateDialogWithExtended();
070            waitAndClickButtonByText("Displays Response in LightBox");
071            validateDialogWithDisplayResponseInLightBox();
072            waitAndClickButtonByText("Tell Me A Story");
073            waitAndCloseDialog();
074            waitAndClickButtonByText("Close");
075            waitAndClickLinkContainingText("Cancel");
076        }
077        
078        private void validateSelectAuthorDialog() throws Exception {
079            waitForElementPresentByXpath("//div[@class='fancybox-skin']/div/div/form/section/header/h3");
080            waitForElementPresentByXpath("//div[@class='fancybox-skin']/div/div/form/section/div/p");
081            waitAndCloseDialog();
082        }
083    
084        private void waitAndCloseDialog() throws InterruptedException {
085            jGrowl("Click Dialog Close");
086            waitAndClickByXpath("//a[@class='fancybox-item fancybox-close']");
087        }
088    
089        private void validateDialogWithHTML() throws Exception {
090            waitForElementPresentByXpath("//form[@id='kualiLightboxForm']/b");
091            waitAndCloseDialog();
092        }
093        
094        private void validateDialogWithPredefinedOkCancel() throws Exception {
095            waitForTextPresent("Please Confirm to Continue");
096            waitAndCloseDialog();
097        }
098        
099        private void validateDialogWithRadioButton() throws Exception {
100            waitForElementPresentByXpath("//div[@id='sampleRadioButtonDialog']/div/fieldset/span/input[@type='radio']");
101            waitAndCloseDialog();
102        }
103        
104        private void validateDialogWithProgressiveRendering() throws Exception {
105            waitForTextPresent("This is always displayed:");
106            waitAndCloseDialog();
107        }
108        
109        private void validateDialogWithHiddenImage() throws Exception {
110            waitForElementPresentByXpath("//img[@src='/krad/images/computer_programming.jpg']");
111            waitAndCloseDialog();
112        }
113        
114        private void validateDialogWithFormUrl() throws Exception {
115            waitForElementPresentByXpath("//iframe[@class='fancybox-iframe']");
116            waitAndCloseDialog();
117        }
118        
119        private void validateDialogWithClientAjax() throws Exception {
120            waitForTextPresent("Please select from the values below");
121            waitAndCloseDialog();
122        }
123        
124        private void validateDialogWithRegularGroup() throws Exception {
125            waitForTextPresent("This group does not inherit from Uif-DialogGroup:");
126            waitAndCloseDialog();
127        }
128        
129        private void validateDialogWithExpression() throws Exception {
130            waitForTextPresent("Mark as Ready for Scheduling");
131            waitAndCloseDialog();
132        }
133        
134        private void validateDialogWithExtended() throws Exception {
135            waitForElementPresentByXpath("//input[@name='field5']");
136            waitAndCloseDialog();
137        }
138        
139        private void validateDialogWithDisplayResponseInLightBox() throws Exception {
140            waitForTextPresent("This group does not inherit from Uif-DialogGroup:");
141            waitAndCloseDialog();
142        }
143        
144        @Test
145        public void testDialogTestViewBookmark() throws Exception {
146            testDialogTestView();
147            passed();
148        }
149    
150        @Test
151        public void testDialogTestViewNav() throws Exception {
152            testDialogTestView();
153            passed();
154        }
155    }