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 }