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.travel.krad.test;
018
019 import edu.samplu.common.UpgradedSeleniumITBase;
020 import org.junit.Test;
021
022 import static junit.framework.Assert.assertTrue;
023 import static junit.framework.Assert.fail;
024 /**
025 * test that dirty fields check happens for all pages in a view
026 *
027 * @author Kuali Rice Team (rice.collab@kuali.org)
028 */
029 public class DirtyFieldsCheckIT extends UpgradedSeleniumITBase {
030 @Override
031 public String getTestUrl() {
032 return PORTAL;
033 }
034
035 @Test
036 public void testDirtyFieldsCheck() throws Exception {
037 selenium.click("link=KRAD");
038 selenium.waitForPageToLoad("30000");
039 selenium.click("link=Uif Components (Kitchen Sink)");
040 selenium.waitForPageToLoad("30000");
041 // selenium.selectFrame("iframeportlet");
042 Thread.sleep(3000);
043 selenium.focus("id=u73_control");
044 selenium.type("id=u73_control", "test 1");
045 selenium.focus("id=u103_control");
046 selenium.type("id=u103_control", "test 2");
047 // 'Other Fields' navigation link
048 selenium.click("id=u967");
049 assertTrue(selenium.getConfirmation().matches("^Form has unsaved data\\. Do you want to leave anyway[\\s\\S]$"));
050 Thread.sleep(3000);
051 for (int second = 0;; second++) {
052 if (second >= 60) fail("timeout");
053 try { if (selenium.isElementPresent("id=u51_control")) break; } catch (Exception e) {}
054 Thread.sleep(1000);
055 }
056 selenium.focus("id=u51_control");
057 selenium.type("id=u51_control", "here");
058 selenium.focus("id=u81_control");
059 selenium.type("id=u81_control", "there");
060 // 'Validation' navigation link
061 selenium.click("id=u970");
062 assertTrue(selenium.getConfirmation().matches("^Form has unsaved data\\. Do you want to leave anyway[\\s\\S]$"));
063 Thread.sleep(3000);
064 for (int second = 0;; second++) {
065 if (second >= 60) fail("timeout");
066 try { if (selenium.isElementPresent("id=u114_control")) break; } catch (Exception e) {}
067 Thread.sleep(1000);
068 }
069 selenium.focus("id=u114_control");
070 selenium.type("id=u114_control", "this");
071 selenium.focus("id=u144_control");
072 selenium.type("id=u144_control", "that");
073 // 'Validation - Regex' navigation link
074 selenium.click("id=u973");
075 assertTrue(selenium.getConfirmation().matches("^Form has unsaved data\\. Do you want to leave anyway[\\s\\S]$"));
076 Thread.sleep(2000);
077 for (int second = 0;; second++) {
078 if (second >= 60) fail("timeout");
079 try { if (selenium.isElementPresent("id=u44_control")) break; } catch (Exception e) {}
080 Thread.sleep(1000);
081 }
082 selenium.focus("id=u44_control");
083 selenium.type("id=u44_control", "1");
084 selenium.focus("id=u74_control");
085 selenium.type("id=u74_control", "2");
086 // 'Progressive Disclosure' navigation link
087 selenium.click("id=u976");
088 assertTrue(selenium.getConfirmation().matches("^Form has unsaved data\\. Do you want to leave anyway[\\s\\S]$"));
089 }
090 }