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 */
016package edu.sampleu.admin;
017
018/**
019 * @author Kuali Rice Team (rice.collab@kuali.org)
020 */
021public abstract class ConfigComponentAftBase extends AdminTmplMthdAftNavCreateNewBase {
022
023    protected void createNewEnterDetails() throws InterruptedException {
024        waitAndTypeByName("document.documentHeader.documentDescription", getDescriptionUnique());
025        selectOptionByName("document.newMaintainableObject.namespaceCode", namespaceCode);
026        jiraAwareTypeByName("document.newMaintainableObject.code", "code" + uniqueString);
027        jiraAwareTypeByName("document.newMaintainableObject.name", "name" + uniqueString);
028    }
029
030    /**
031     * {@inheritDoc}
032     * Component
033     * @return
034     */
035    @Override
036    protected String getLinkLocator() {
037        return "Component";
038    }
039
040    protected void saveAndClose() throws InterruptedException {
041        checkForDocError();
042        waitAndClickByXpath(SAVE_XPATH);
043        waitForTextPresent("Document was successfully saved");
044        waitAndClickByName("methodToCall.close");
045//         waitAndClickByName("methodToCall.processAnswer.button1");
046    }
047
048    protected void saveAndReload() throws InterruptedException {
049        checkForDocError();
050        waitAndClickByXpath(SAVE_XPATH);
051        waitForTextPresent("Document was successfully saved");
052        waitAndClickByName("methodToCall.reload");
053//         waitAndClickByName("methodToCall.processAnswer.button1");
054    }
055
056    protected void submitAndClose() throws InterruptedException {
057        checkForDocError();
058        waitAndClickByName("methodToCall.route");
059        waitForTextPresent("Document was successfully submitted");
060        waitAndClickByName("methodToCall.close");
061//         waitAndClickByName("methodToCall.processAnswer.button1");
062    }
063
064    /**
065     * submits the doc and asserts that it was successfully submitted
066     * does not close the document
067     *
068     * @throws InterruptedException
069     */
070    protected void submit() throws InterruptedException {
071        checkForDocError();
072        waitAndClickByName("methodToCall.route");
073        waitForTextPresent("Document was successfully submitted");
074    }
075
076    /**
077     * recalls a document.
078     * closes the page when done.
079     *
080     * @param cancel if true, performs recall and cancel. if false, performs recall to action list
081     *
082     * @throws InterruptedException
083     */
084    protected void recall(boolean cancel) throws InterruptedException {
085        waitAndClickByName("methodToCall.recall");
086        waitForTextPresent("the reason below");
087        waitAndTypeByName("reason", "Oops!");
088        if (cancel){
089            // recall and cancel
090            waitAndClickByName("methodToCall.processAnswer.button1");
091            waitForTextPresent("RECALLED");
092            waitAndClickByName("methodToCall.close");
093        } else {
094            // recall to action list
095            waitAndClickByName("methodToCall.processAnswer.button0");
096            waitForTextPresent("SAVED");
097            waitAndClickByName("methodToCall.close");
098            waitAndClickByName("methodToCall.processAnswer.button1");
099        }
100    }
101
102}