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 */
016package edu.samplu.travel.krad.test;
017
018import com.thoughtworks.selenium.SeleneseTestBase;
019import edu.samplu.common.Failable;
020import edu.samplu.common.ITUtil;
021import edu.samplu.common.WebDriverLegacyITBase;
022
023/**
024 * Tests the Component section in Rice.
025 *
026 * @author Kuali Rice Team (rice.collab@kuali.org)
027 */
028public abstract class DirtyFieldsAbstractSmokeTestBase extends WebDriverLegacyITBase {
029
030    /**
031     * "/kr-krad/uicomponents?viewId=UifCompView&methodToCall=start&readOnlyFields=field91";
032     */
033    public static final String BOOKMARK_URL = "/kr-krad/uicomponents?viewId=UifCompView&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        waitAndClickByLinkText("Text Controls");
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.assertTrue(waitAndGetAttributeByName("field112", "style").contains("text-transform: uppercase;"));
089        assertCancelConfirmation();
090        waitForElementPresentByName("field101");
091        SeleneseTestBase.assertEquals("val", waitAndGetAttributeByName("field101", "value"));
092        clearTextByName("field101");
093        waitAndTypeByName("field101", "1");
094        waitAndTypeByName("field104", "");
095        SeleneseTestBase.assertEquals("1", waitAndGetAttributeByName("field101", "value"));
096        waitAndTypeByName("field104", "2");
097
098        // 'Progressive Disclosure' navigation link
099        assertCancelConfirmation();
100    }
101}