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.krad.demo.uif.library;
017
018import org.junit.Test;
019import org.openqa.selenium.By;
020import org.openqa.selenium.WebElement;
021
022/**
023 * @author Kuali Rice Team (rice.collab@kuali.org)
024 */
025public class DemoLibraryWidgetsSuggestSmokeTest extends DemoLibraryBase {
026
027    /**
028     * /kr-krad/kradsampleapp?viewId=Demo-Suggest-View&methodToCall=start
029     */
030    public static final String BOOKMARK_URL = "/kr-krad/kradsampleapp?viewId=Demo-Suggest-View&methodToCall=start";
031
032    @Override
033    protected String getBookmarkUrl() {
034        return BOOKMARK_URL;
035    }
036
037    @Override
038    protected void navigate() throws Exception {
039        waitAndClickById("Demo-LibraryLink", "");
040        waitAndClickByLinkText("Widgets");
041        waitAndClickByLinkText("Suggest");
042    }
043
044    protected void testWidgetsSuggest(String exampleLink, String inputFieldName, String search,
045            String result) throws Exception {
046
047        //go to correct example
048        waitAndClickByLinkText(exampleLink);
049
050        //enter value
051        waitAndTypeByName(inputFieldName, search);
052
053        //verify expect suggest results
054        waitForElementPresent(By.linkText(result), "Library Widget Suggest, CAT not suggested");
055        assertElementPresentByLinkText(result);
056        waitAndClickByLinkText(result);
057
058        //verify text is populated
059        if (!driver.findElement(By.name(inputFieldName)).getAttribute("value").equals(result)) {
060            fail("input text is incorrect");
061        }
062
063    }
064
065    protected void testWidgetsSuggestHelperMethod2() throws Exception {
066
067        final String EXAMPLE_LINK_NAME = "View Helper Method Configuration 2";
068        final String INPUT_FIELD_NAME = "inputField4";
069        final String SEARCH_VALUE = "a";
070        final String RESULT = "a6";
071
072        //go to correct example
073        waitAndClickByLinkText(EXAMPLE_LINK_NAME);
074
075        //enter values
076        waitAndTypeByName("inputField3", "a6-sub");
077        waitAndTypeByName(INPUT_FIELD_NAME, SEARCH_VALUE);
078
079        //verify expect suggest results
080        assertElementPresentByLinkText(RESULT);
081        waitAndClickByLinkText(RESULT);
082
083        //verify text is populated
084        if (!driver.findElement(By.name(INPUT_FIELD_NAME)).getAttribute("value").equals(RESULT)) {
085            fail("input text is incorrect");
086        }
087    }
088
089    protected void testWidgetsSuggestRichText() throws Exception {
090
091        final String EXAMPLE_LINK_NAME = "Rich suggest options";
092        final String INPUT_FIELD_NAME = "inputField8";
093        final String SEARCH_VALUE = "r";
094
095        //go to correct example
096        waitAndClickByLinkText(EXAMPLE_LINK_NAME);
097
098        //enter values
099        waitAndTypeByName(INPUT_FIELD_NAME, SEARCH_VALUE);
100
101        //verify expect suggest results
102        WebElement resultLink = driver.findElement(By.partialLinkText("Rich Option 1"));
103        resultLink.click();
104
105        //verify text is populated
106        if (!driver.findElement(By.name(INPUT_FIELD_NAME)).getAttribute("value").equals("r1")) {
107            fail("input text is incorrect");
108        }
109    }
110
111    @Test
112    public void testWidgetsTooltipBookmark() throws Exception {
113        testWidgetsSuggest("Auto-Query Configuration", "inputField1", "ca", "CAT");
114        testWidgetsSuggest("View Helper Method Configuration 1", "inputField2", "a1", "a14");
115        testWidgetsSuggestHelperMethod2();
116        testWidgetsSuggest("Service Method and Sorting Configuration", "inputField6", "sub", "sub-a3");
117        testWidgetsSuggest("Local suggest options", "inputField7", "cold", "ColdFusion");
118        testWidgetsSuggestRichText();
119        testWidgetsSuggest("Configured suggest options", "inputField9", "cold", "ColdFusion");
120        testWidgetsSuggest("Custom selection", "inputField10", "jm", "jmcross");
121        driver.close();
122        passed();
123    }
124
125    @Test
126    public void testWidgetsTooltipNav() throws Exception {
127        testWidgetsSuggest("Auto-Query Configuration", "inputField1", "ca", "CAT");
128        testWidgetsSuggest("View Helper Method Configuration 1", "inputField2", "a1", "a14");
129        testWidgetsSuggestHelperMethod2();
130        testWidgetsSuggest("Service Method and Sorting Configuration", "inputField6", "sub", "sub-a3");
131        testWidgetsSuggest("Local suggest options", "inputField7", "cold", "ColdFusion");
132        testWidgetsSuggestRichText();
133        testWidgetsSuggest("Configured suggest options", "inputField9", "cold", "ColdFusion");
134        testWidgetsSuggest("Custom selection", "inputField10", "jm", "jmcross");
135        driver.close();
136        passed();
137    }
138}
139
140