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.kim.api.location;
017
018import edu.sampleu.admin.AdminTmplMthdAftNavBlanketAppBase;
019import org.junit.Test;
020import org.kuali.rice.testtools.selenium.AutomatedFunctionalTestUtils;
021import org.kuali.rice.testtools.selenium.WebDriverUtils;
022
023import java.util.Arrays;
024import java.util.List;
025
026/**
027 * @author Kuali Rice Team (rice.collab@kuali.org)
028 */
029public class LocationStateAft extends AdminTmplMthdAftNavBlanketAppBase {
030
031    public static final List<String> STATE_CODES = Arrays.asList(
032            new String[]{"AK", "AL", "AR", "AS", "AZ", "CA", "CO", "CT", "DC", "DE", "FL", "GA", "GU", "HI", "IA", "ID",
033                    "IL", "IN", "KS", "KY", "LA", "MA", "MD", "ME", "MH", "MI", "MN", "MO", "MS", "MT", "NC", "ND",
034                    "NE", "NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", "PA", "PR", "PW", "RI", "SC", "SD", "TN",
035                    "TX", "UT", "VA", "VI", "VT", "WA", "WI", "WV", "WY"});
036
037    /**
038     * ITUtil.PORTAL + "?channelTitle=State&channelUrl=" 
039     * + WebDriverUtils.getBaseUrlString() + ITUtil.KNS_LOOKUP_METHOD + "org.kuali.rice.location.impl.state.StateBo&docFormKey=88888888&returnLocation=" +
040     * ITUtil.PORTAL_URL + ITUtil.HIDE_RETURN_LINK;
041     */
042    public static final String BOOKMARK_URL = AutomatedFunctionalTestUtils.PORTAL + "?channelTitle=State&channelUrl="
043            + WebDriverUtils.getBaseUrlString() + AutomatedFunctionalTestUtils.KNS_LOOKUP_METHOD +
044            "org.kuali.rice.location.impl.state.StateBo&docFormKey=88888888&returnLocation=" +
045            AutomatedFunctionalTestUtils.PORTAL_URL + AutomatedFunctionalTestUtils.HIDE_RETURN_LINK + AutomatedFunctionalTestUtils.SHOW_MAINTENANCE_LINKS;
046
047    @Override
048    protected String getBookmarkUrl() {
049        return BOOKMARK_URL;
050    }
051
052    /**
053     * {@inheritDoc}
054     * State
055     * @return
056     */
057    @Override
058    protected String getLinkLocator() {
059        return "State";
060    }
061
062    protected void createNewEnterDetails() throws InterruptedException {
063        inputDetails();
064
065        jiraAwareTypeByName("document.newMaintainableObject.countryCode", "US");
066    }
067
068    private void inputDetails() throws InterruptedException {
069        // Make sure we don't use an existing state abbreviation
070        getDescriptionUnique(); // trigger creating of uniqueString
071        while (STATE_CODES.contains(uniqueString.substring(5, 7).toUpperCase())) {
072            uniqueString = null;
073            getDescriptionUnique(); // trigger creating of uniqueString
074        }
075
076        waitForElementPresentByName("document.documentHeader.documentDescription");
077
078        jiraAwareClearAndTypeByName("document.documentHeader.documentDescription", getDescriptionUnique());
079        jiraAwareClearAndTypeByName("document.newMaintainableObject.name", "name" + uniqueString);
080        jiraAwareClearAndTypeByName("document.newMaintainableObject.code", uniqueString.substring(5, 7));
081    }
082
083    @Override
084    protected void createNewLookupDetails() throws InterruptedException {
085        inputDetails();
086
087        String countryLookUp = "//input[@name='methodToCall.performLookup.(!!org.kuali.rice.location.impl.country.CountryBo!!).(((code:document.newMaintainableObject.countryCode,))).((`document.newMaintainableObject.countryCode:code,`)).((<>)).(([])).((**)).((^^)).((&&)).((//)).((~~)).(::::;"
088                + getBaseUrlString() + "/kr/lookup.do;::::).anchor4']";
089        waitAndClickByXpath(countryLookUp);
090        waitAndClickSearch();
091        waitAndClickReturnValue();
092    }
093
094    @Test
095    public void testEditCancelBookmark() throws Exception {
096        testEditCancel();
097        passed();
098    }
099
100    @Test
101    public void testEditCancelNav() throws Exception {
102        testEditCancel();
103        passed();
104    }
105}