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.krad.library.clientresponsiveness;
017
018 import org.junit.Test;
019
020 import edu.samplu.common.Failable;
021 import edu.samplu.common.ITUtil;
022 import edu.samplu.common.SmokeTestBase;
023 import edu.samplu.common.WebDriverLegacyITBase;
024
025 /**
026 * @author Kuali Rice Team (rice.collab@kuali.org)
027 */
028 public class LibraryClientResponsivenessDisableSmokeTest extends SmokeTestBase {
029
030 /**
031 * /kr-krad/kradsampleapp?viewId=Demo-Disable-View&methodToCall=start
032 */
033 public static final String BOOKMARK_URL = "/kr-krad/kradsampleapp?viewId=Demo-Disable-View&methodToCall=start";
034
035 @Override
036 protected String getBookmarkUrl() {
037 return BOOKMARK_URL;
038 }
039
040 @Override
041 protected void navigate() throws Exception {
042 waitAndClickById("Demo-LibraryLink", "");
043 waitAndClickByLinkText("Client Responsiveness");
044 waitAndClickByLinkText("Disable");
045 }
046
047 protected void testClientResponsivenessDisable() throws Exception {
048 //Scenario-1 - enabled
049 waitAndClickByXpath("//input[@type='radio' and @value='enable']");
050 waitAndTypeByName("inputField2","a");
051 waitAndTypeByName("inputField3","b");
052 selectByName("inputField4", "Option 2");
053 selectByName("multiSelectField1","Option 3");
054 waitAndClickByXpath("//input[@type='radio' and @value='1']");
055 waitAndClickByName("checkboxesField1");
056
057 //Scenario-2 - disabled
058 waitAndClickByXpath("//input[@type='radio' and @value='disable']");
059 if(isEnabledByName("inputField2") && isEnabledByName("inputField3") && isEnabledByName("inputField4") && isEnabledByName("inputField6") &&
060 isEnabledByName("inputField7") && isEnabledByName("multiSelectField1"))
061 {
062 fail("Field Not Disabled Properly.");
063 }
064 }
065
066 protected void testClientResponsivenessDisableOnChange() throws Exception {
067 selectByName("exampleShown","On change");
068
069 //Scenario-1
070 assertElementPresentByXpath("//button[@class='btn btn-primary uif-primaryActionButton uif-boxLayoutHorizontalItem disabled']");
071 waitAndTypeByName("inputField10","a");
072 waitAndTypeByName("inputField11","a");
073 if(isElementPresentByXpath("//button[@class='btn btn-primary uif-primaryActionButton uif-boxLayoutHorizontalItem disabled']"))
074 {
075 fail("Constraint not working properly.");
076 }
077 waitAndTypeByName("inputField10", "");
078 assertElementPresentByXpath("//button[@class='btn btn-primary uif-primaryActionButton uif-boxLayoutHorizontalItem disabled']");
079 }
080
081 protected void testClientResponsivenessDisableOnKeyUp() throws Exception {
082 selectByName("exampleShown","On keyup");
083 waitAndTypeByName("inputField13","disable");
084 assertElementPresentByXpath("//button[contains(text(),'Action Button (keyUp)') and @class='btn btn-primary uif-primaryActionButton uif-boxLayoutHorizontalItem disabled']");
085 waitAndClickByLinkText("Usage");
086 assertElementPresentByXpath("//button[contains(text(),'Action Button (change)') and @class='btn btn-primary uif-primaryActionButton uif-boxLayoutHorizontalItem disabled']");
087 }
088
089 protected void testClientResponsivenessDisableInCollections() throws Exception {
090 selectByName("exampleShown","In Collections");
091 assertElementPresentByXpath("//input[@name='newCollectionLines['collection1'].field2' and @class='uif-textControl valid ignoreValid']");
092 selectByName("newCollectionLines['collection1'].field1","Disable");
093 assertElementPresentByXpath("//input[@name='newCollectionLines['collection1'].field2' and @class='uif-textControl ignoreValid disabled']");
094 }
095
096 protected void testClientResponsivenessDisableColl() throws Exception {
097 selectByName("exampleShown","Coll. SpringEL Functions");
098 waitAndClickByXpath("//input[@name='checkboxesField2' and value='1']");
099 assertElementPresentByXpath("//input[@name='inputField20' and @class='uif-textControl disabled']");
100 waitAndClickByXpath("//input[@name='checkboxesField2' and value='2']");
101 waitAndClickByXpath("//input[@name='checkboxesField2' and value='3']");
102 assertElementPresentByXpath("//input[@name='inputField21' and @class='uif-textControl disabled']");
103 }
104
105 @Test
106 public void testClientResponsivenessDisableBookmark() throws Exception {
107 testClientResponsivenessDisable();
108 testClientResponsivenessDisableOnChange();
109 testClientResponsivenessDisableOnKeyUp();
110 testClientResponsivenessDisableInCollections();
111 testClientResponsivenessDisableColl();
112 passed();
113 }
114
115 @Test
116 public void testClientResponsivenessDisableNav() throws Exception {
117 testClientResponsivenessDisable();
118 testClientResponsivenessDisableOnChange();
119 testClientResponsivenessDisableOnKeyUp();
120 testClientResponsivenessDisableInCollections();
121 testClientResponsivenessDisableColl();
122
123 passed();
124 }
125 }