001 /**
002 * Copyright 2005-2013 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.samplu.travel.krad.test;
017
018 import com.thoughtworks.selenium.SeleneseTestBase;
019 import edu.samplu.common.Failable;
020 import edu.samplu.common.ITUtil;
021 import edu.samplu.common.WebDriverLegacyITBase;
022
023 /**
024 * Tests the Component section in Rice.
025 *
026 * @author Kuali Rice Team (rice.collab@kuali.org)
027 */
028 public abstract class DirtyFieldsAbstractSmokeTestBase extends WebDriverLegacyITBase {
029
030 /**
031 * "/kr-krad/uicomponents?viewId=UifCompView_KNS&methodToCall=start&readOnlyFields=field91";
032 */
033 public static final String BOOKMARK_URL = "/kr-krad/uicomponents?viewId=UifCompView_KNS&methodToCall=start&readOnlyFields=field91";
034
035 protected void bookmark() {
036 open(ITUtil.getBaseUrlString() + BOOKMARK_URL);
037 }
038
039 /**
040 * Nav tests start at {@link edu.samplu.common.ITUtil#PORTAL}.
041 * Bookmark Tests should override and return {@link edu.samplu.travel.krad.test.DirtyFieldsAbstractSmokeTestBase#BOOKMARK_URL}
042 * {@inheritDoc}
043 * @return
044 */
045 @Override
046 public String getTestUrl() {
047 return ITUtil.PORTAL;
048 }
049
050 protected void navigation() throws InterruptedException {
051 waitAndClickKRAD();
052 waitAndClickByLinkText(UIF_COMPONENTS_KITCHEN_SINK_LINK_TEXT);
053 switchToWindow(KUALI_UIF_COMPONENTS_WINDOW_XPATH);
054 }
055
056 protected void testDirtyFieldsCheckNav(Failable failable) throws Exception {
057 navigation();
058 testDirtyFieldsCheck();
059 passed();
060 }
061
062 protected void testDirtyFieldsCheckBookmark(Failable failable) throws Exception {
063 testDirtyFieldsCheck();
064 passed();
065 }
066
067
068 protected void testDirtyFieldsCheck() throws Exception {
069 checkForIncidentReport(getTestUrl());
070 Thread.sleep(5000);
071 waitAndTypeByName("field1", "test 1");
072 waitAndTypeByName("field102", "test 2");
073 assertCancelConfirmation();
074
075 // testing manually
076 waitForElementPresentByName("field100");
077 waitAndTypeByName("field100", "here");
078 waitAndTypeByName("field103", "there");
079
080 // 'Validation' navigation link
081 assertCancelConfirmation();
082
083 // testing manually
084 waitForElementPresentByName("field106");
085
086 // //Asserting text-field style to uppercase. This style would display
087 // input text in uppercase.
088 SeleneseTestBase.assertEquals("text-transform: uppercase;",getAttributeByName("field112", "style"));
089 assertCancelConfirmation();
090 waitForElementPresentByName("field101");
091 SeleneseTestBase.assertEquals("val", getAttributeByName("field101", "value"));
092 clearTextByName("field101");
093 waitAndTypeByName("field101", "1");
094 waitAndTypeByName("field104", "");
095 SeleneseTestBase.assertEquals("1", getAttributeByName("field101","value"));
096 waitAndTypeByName("field104", "2");
097
098 // 'Progressive Disclosure' navigation link
099 assertCancelConfirmation();
100 }
101 }