001 /* 002 * Copyright 2006-2012 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 017 package edu.samplu.krad.compview; 018 019 import edu.samplu.common.UpgradedSeleniumITBase; 020 import junit.framework.Assert; 021 import org.junit.Test; 022 023 /** 024 * @author Kuali Rice Team (rice.collab@kuali.org) 025 */ 026 public class ContraintsIT extends UpgradedSeleniumITBase { 027 028 @Override 029 public String getTestUrl() { 030 return "/kr-krad/uicomponents?viewId=UifCompView&methodToCall=start&pageId=UifCompView-Page3"; 031 } 032 033 @Test 034 public void testContraintsIT() throws Exception { 035 checkForIncidentReport("name=field9"); 036 focus("name=field9"); 037 waitAndType("name=field9", "1"); 038 fireEvent("name=field9", "blur"); 039 Assert.assertTrue(getAttribute("name=field9@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 040 focus("name=field9"); 041 waitAndType("name=field9", "12345"); 042 fireEvent("name=field9", "blur"); 043 Assert.assertTrue(getAttribute("name=field9@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 044 focus("name=field10"); 045 waitAndType("name=field10", "2"); 046 fireEvent("name=field10", "blur"); 047 Assert.assertTrue(getAttribute("name=field10@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 048 focus("name=field10"); 049 waitAndType("name=field10", "51"); 050 fireEvent("name=field10", "blur"); 051 Assert.assertTrue(getAttribute("name=field10@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 052 focus("name=field10"); 053 waitAndType("name=field10", "25"); 054 fireEvent("name=field10", "blur"); 055 Assert.assertTrue(getAttribute("name=field10@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 056 focus("name=field6"); 057 waitAndType("name=field6", "A"); 058 fireEvent("name=field6", "blur"); 059 fireEvent("name=field7", "blur"); 060 Assert.assertTrue(getAttribute("name=field7@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 061 waitAndType("name=field7", "B"); 062 fireEvent("name=field7", "blur"); 063 Assert.assertTrue(getAttribute("name=field7@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 064 fireEvent("name=field8", "blur"); 065 Assert.assertTrue(getAttribute("name=field8@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 066 waitAndType("name=field8", "C"); 067 fireEvent("name=field8", "blur"); 068 Assert.assertTrue(getAttribute("name=field8@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 069 waitAndType("name=field6", ""); 070 fireEvent("name=field6", "blur"); 071 Assert.assertTrue(getAttribute("name=field6@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 072 waitAndType("name=field7", ""); 073 fireEvent("name=field7", "blur"); 074 Assert.assertTrue(getAttribute("name=field7@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 075 waitAndType("name=field8", ""); 076 fireEvent("name=field8", "blur"); 077 Assert.assertTrue(getAttribute("name=field6@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 078 Assert.assertTrue(getAttribute("name=field7@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 079 Assert.assertTrue(getAttribute("name=field8@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 080 waitAndType("name=field8", "C"); 081 fireEvent("name=field8", "blur"); 082 Assert.assertTrue(getAttribute("name=field6@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 083 Assert.assertTrue(getAttribute("name=field7@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 084 Assert.assertTrue(getAttribute("name=field8@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 085 waitAndType("name=field6", "A"); 086 fireEvent("name=field6", "blur"); 087 Assert.assertTrue(getAttribute("name=field6@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 088 Assert.assertTrue(getAttribute("name=field7@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 089 Assert.assertTrue(getAttribute("name=field8@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 090 waitAndType("name=field14", "A"); 091 fireEvent("name=field14", "blur"); 092 Assert.assertTrue(getAttribute("name=field14@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 093 waitAndType("name=field11", "A"); 094 fireEvent("name=field11", "blur"); 095 Assert.assertTrue(getAttribute("name=field11@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 096 Assert.assertTrue(getAttribute("name=field14@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 097 waitAndType("name=field11", ""); 098 fireEvent("name=field11", "blur"); 099 Assert.assertTrue(getAttribute("name=field14@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 100 waitAndType("name=field12", "A"); 101 fireEvent("name=field12", "blur"); 102 Assert.assertTrue(getAttribute("name=field14@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 103 waitAndType("name=field13", "A"); 104 fireEvent("name=field13", "blur"); 105 Assert.assertTrue(getAttribute("name=field13@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 106 Assert.assertTrue(getAttribute("name=field14@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 107 waitAndType("name=field11", "A"); 108 fireEvent("name=field11", "blur"); 109 Assert.assertTrue(getAttribute("name=field11@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 110 Assert.assertTrue(getAttribute("name=field14@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 111 waitAndType("name=field18", "A"); 112 fireEvent("name=field18", "blur"); 113 Assert.assertTrue(getAttribute("name=field18@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 114 waitAndType("name=field15", "A"); 115 fireEvent("name=field15", "blur"); 116 Assert.assertTrue(getAttribute("name=field15@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 117 Assert.assertTrue(getAttribute("name=field18@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 118 waitAndType("name=field15", ""); 119 fireEvent("name=field15", "blur"); 120 Assert.assertTrue(getAttribute("name=field18@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 121 waitAndType("name=field16", "A"); 122 fireEvent("name=field16", "blur"); 123 Assert.assertTrue(getAttribute("name=field18@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 124 waitAndType("name=field17", "A"); 125 fireEvent("name=field17", "blur"); 126 Assert.assertTrue(getAttribute("name=field17@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 127 Assert.assertTrue(getAttribute("name=field18@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 128 waitAndType("name=field15", "A"); 129 fireEvent("name=field15", "blur"); 130 Assert.assertTrue(getAttribute("name=field18@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 131 waitAndType("name=field23", "A"); 132 fireEvent("name=field23", "blur"); 133 Assert.assertTrue(getAttribute("name=field23@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 134 waitAndType("name=field19", "A"); 135 fireEvent("name=field19", "blur"); 136 Assert.assertTrue(getAttribute("name=field23@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 137 waitAndType("name=field19", ""); 138 fireEvent("name=field19", "blur"); 139 waitAndType("name=field20", "B"); 140 fireEvent("name=field20", "blur"); 141 Assert.assertTrue(getAttribute("name=field23@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 142 waitAndType("name=field20", ""); 143 fireEvent("name=field20", "blur"); 144 Assert.assertTrue(getAttribute("name=field23@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 145 waitAndType("name=field21", "C"); 146 fireEvent("name=field21", "blur"); 147 Assert.assertTrue(getAttribute("name=field23@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 148 waitAndType("name=field22", "D"); 149 fireEvent("name=field22", "blur"); 150 Assert.assertTrue(getAttribute("name=field23@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 151 waitAndType("name=field19", "D"); 152 fireEvent("name=field19", "blur"); 153 Assert.assertTrue(getAttribute("name=field23@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 154 waitAndType("name=field20", "D"); 155 fireEvent("name=field20", "blur"); 156 Assert.assertTrue(getAttribute("name=field23@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 157 check("name=field24 value=case1"); 158 waitAndType("name=field25", ""); 159 fireEvent("name=field25", "blur"); 160 Assert.assertTrue(getAttribute("name=field25@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 161 check("name=field24 value=case4"); 162 fireEvent("name=field24", "blur"); 163 for (int second = 0; ; second++) { 164 if (second >= 60) { 165 Assert.fail("timeout"); 166 } 167 try { 168 if (getAttribute("name=field25@class").matches("^[\\s\\S]*valid[\\s\\S]*$")) { 169 break; 170 } 171 } catch (Exception e) { 172 } 173 Thread.sleep(1000); 174 } 175 176 Assert.assertTrue(getAttribute("name=field25@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 177 check("name=field24 value=case1"); 178 fireEvent("name=field24", "blur"); 179 waitAndType("name=field25", "$100"); 180 fireEvent("name=field25", "blur"); 181 for (int second = 0; ; second++) { 182 if (second >= 60) { 183 Assert.fail("timeout"); 184 } 185 try { 186 if (getAttribute("name=field25@class").matches("^[\\s\\S]*valid[\\s\\S]*$")) { 187 break; 188 } 189 } catch (Exception e) { 190 } 191 Thread.sleep(1000); 192 } 193 194 Assert.assertTrue(getAttribute("name=field25@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 195 check("name=field24 value=case2"); 196 fireEvent("name=field24", "blur"); 197 for (int second = 0; ; second++) { 198 if (second >= 60) { 199 Assert.fail("timeout"); 200 } 201 try { 202 if (getAttribute("name=field25@class").matches("^[\\s\\S]*error[\\s\\S]*$")) { 203 break; 204 } 205 } catch (Exception e) { 206 } 207 Thread.sleep(1000); 208 } 209 210 Assert.assertTrue(getAttribute("name=field25@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 211 waitAndType("name=field25", "A100"); 212 fireEvent("name=field25", "blur"); 213 Assert.assertTrue(getAttribute("name=field25@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 214 check("name=field24 value=case3"); 215 fireEvent("name=field24", "blur"); 216 waitAndType("name=field26", "6000"); 217 fireEvent("name=field26", "blur"); 218 for (int second = 0; ; second++) { 219 if (second >= 60) { 220 Assert.fail("timeout"); 221 } 222 try { 223 if (getAttribute("name=field26@class").matches("^[\\s\\S]*error[\\s\\S]*$")) { 224 break; 225 } 226 } catch (Exception e) { 227 } 228 Thread.sleep(1000); 229 } 230 231 Assert.assertTrue(getAttribute("name=field26@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 232 waitAndType("name=field26", "501"); 233 fireEvent("name=field26", "blur"); 234 Assert.assertTrue(getAttribute("name=field26@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 235 waitAndType("name=field26", "499"); 236 fireEvent("name=field26", "blur"); 237 Assert.assertTrue(getAttribute("name=field26@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 238 waitAndType("name=field26", "6000"); 239 fireEvent("name=field26", "blur"); 240 check("name=field24 value=case3"); 241 fireEvent("name=field24", "blur"); 242 for (int second = 0; ; second++) { 243 if (second >= 60) { 244 Assert.fail("timeout"); 245 } 246 try { 247 if (getAttribute("name=field26@class").matches("^[\\s\\S]*error[\\s\\S]*$")) { 248 break; 249 } 250 } catch (Exception e) { 251 } 252 Thread.sleep(1000); 253 } 254 255 Assert.assertTrue(getAttribute("name=field26@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 256 check("name=field24 value=case4"); 257 waitAndType("name=field27", "A"); 258 fireEvent("name=field27", "blur"); 259 waitAndType("name=field28", ""); 260 fireEvent("name=field28", "blur"); 261 for (int second = 0; ; second++) { 262 if (second >= 60) { 263 Assert.fail("timeout"); 264 } 265 try { 266 if (getAttribute("name=field28@class").matches("^[\\s\\S]*error[\\s\\S]*$")) { 267 break; 268 } 269 } catch (Exception e) { 270 } 271 Thread.sleep(1000); 272 } 273 274 Assert.assertTrue(getAttribute("name=field28@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 275 check("name=field24 value=case3"); 276 fireEvent("name=field24", "blur"); 277 for (int second = 0; ; second++) { 278 if (second >= 60) { 279 Assert.fail("timeout"); 280 } 281 try { 282 if (getAttribute("name=field28@class").matches("^[\\s\\S]*valid[\\s\\S]*$")) { 283 break; 284 } 285 } catch (Exception e) { 286 } 287 Thread.sleep(1000); 288 } 289 290 Assert.assertTrue(getAttribute("name=field28@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 291 waitAndType("name=field28", "B"); 292 fireEvent("name=field28", "blur"); 293 check("name=field24 value=case4"); 294 fireEvent("name=field24", "blur"); 295 for (int second = 0; ; second++) { 296 if (second >= 60) { 297 Assert.fail("timeout"); 298 } 299 try { 300 if (getAttribute("name=field28@class").matches("^[\\s\\S]*valid[\\s\\S]*$")) { 301 break; 302 } 303 } catch (Exception e) { 304 } 305 Thread.sleep(1000); 306 } 307 308 Assert.assertTrue(getAttribute("name=field28@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 309 waitAndType("name=field31", "B"); 310 waitAndType("name=field32", "B"); 311 fireEvent("name=field33", "blur"); 312 Assert.assertTrue(getAttribute("name=field33@class").matches("^[\\s\\S]*error[\\s\\S]*$")); 313 waitAndType("name=field33", "B"); 314 fireEvent("name=field33", "blur"); 315 Assert.assertTrue(getAttribute("name=field33@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 316 waitAndType("name=field32", "A"); 317 waitAndType("name=field33", ""); 318 fireEvent("name=field33", "blur"); 319 Assert.assertTrue(getAttribute("name=field33@class").matches("^[\\s\\S]*valid[\\s\\S]*$")); 320 } 321 }