001 package edu.samplu.krad.compview; 002 003 004 import edu.samplu.common.UpgradedSeleniumITBase; 005 import org.junit.Assert; 006 import org.junit.Test; 007 008 /** 009 * @author Kuali Rice Team (rice.collab@kuali.org) 010 */ 011 public class RichMessagesValidationIT extends UpgradedSeleniumITBase { 012 013 @Override 014 public String getTestUrl() { 015 return "/kr-krad/uicomponents?viewId=RichMessagesView&methodToCall=start"; 016 } 017 018 @Test 019 public void testRichMessagesValidationIT() throws Exception { 020 021 checkForIncidentReport(getTestUrl()); 022 Thread.sleep(9000); 023 selectWindow("title=Kuali :: Rich Messages"); 024 025 //Verify Basic Functionality Section 026 this.verifyBasicFunctionality(); 027 028 //Verify Advanced Functionality Section 029 this.verifyAdvancedFunctionality(); 030 031 //Verify Letters and Numbers Validation 032 this.verifyLettersNumbersValidation(); 033 034 //Verify Radio and Checkbox groups rich messages Section 035 this.verifyRadioAndCheckBoxGroupFunctionality(); 036 037 //Verify Link Declarations Section 038 this.verifyLinkDeclarationsFunctionality(); 039 } 040 041 private void verifyBasicFunctionality() throws Exception 042 { 043 Assert.assertTrue(isElementPresent("//input[@type='text' and @name='field1']")); 044 Assert.assertTrue(isElementPresent("//a[contains(text(), 'Kuali')]")); 045 Assert.assertTrue(isElementPresent("//input[@type='checkbox' and @name='field2']")); 046 Thread.sleep(3000); 047 } 048 049 private void verifyAdvancedFunctionality() throws Exception 050 { 051 //Color Options 052 Assert.assertTrue(isElementPresent("//span[@style='color: green;']")); 053 Assert.assertTrue(isElementPresent("//span[@style='color: blue;']")); 054 055 //Css class 056 Assert.assertTrue(isElementPresent("//span[@class='fl-text-underline fl-text-larger']")); 057 058 //Combinations 059 Assert.assertTrue(isElementPresent("//input[@type='text' and @name='field3']")); 060 Assert.assertTrue(isElementPresent("//select[@name='field4']")); 061 Assert.assertTrue(isElementPresent("//button[contains(text(), 'Action Button')]")); 062 063 //Rich Message Field 064 Assert.assertTrue(isElementPresent("//label[contains(., 'Label With')]/span[contains(., 'Color')]")); 065 Assert.assertTrue(isElementPresent("//label[contains(., 'Label With')]/i/b[contains(., 'Html')]")); 066 Assert.assertTrue(isElementPresent("//label[contains(., 'Label With')]/img[@class='uif-image inlineBlock']")); 067 068 Thread.sleep(3000); 069 } 070 071 private void verifyLettersNumbersValidation() throws Exception 072 { 073 //For letters only Validation 074 Assert.assertTrue(isElementPresent("//input[@type='text' and @name='field5']")); 075 focusAndType("//div[@class='uif-field uif-inputField uif-inputField-labelTop inlineBlock']/input[@name= 'field5']","abc"); 076 Assert.assertFalse(isElementPresent("//div[@class='uif-field uif-inputField uif-inputField-labelTop inlineBlock uif-hasError']")); 077 focusAndType("//div[@class='uif-field uif-inputField uif-inputField-labelTop inlineBlock']/input[@name= 'field5']","abc12"); 078 fireEvent("//div[@class='uif-field uif-inputField uif-inputField-labelTop inlineBlock']/input[@name= 'field5']","blur"); 079 Thread.sleep(3000); 080 Assert.assertTrue(isElementPresent("//div[@class='uif-field uif-inputField uif-inputField-labelTop inlineBlock uif-hasError']")); 081 focusAndType("//div[@class='uif-field uif-inputField uif-inputField-labelTop inlineBlock uif-hasError']/input[@name= 'field5']","abc"); 082 fireEvent("//div[@class='uif-field uif-inputField uif-inputField-labelTop inlineBlock uif-hasError']/input[@name= 'field5']","blur"); 083 084 //For numbers only validation 085 focusAndType("//input[@name= 'field6']","123"); 086 Assert.assertFalse(isElementPresent("//div[@class='uif-field uif-inputField uif-inputField-labelTop inlineBlock uif-hasError']")); 087 focusAndType("//input[@name= 'field6']","123ab"); 088 fireEvent("//input[@name= 'field6']","blur"); 089 Thread.sleep(5000); 090 Assert.assertTrue(isElementPresent("//div[@class='uif-field uif-inputField uif-inputField-labelTop inlineBlock uif-hasError']")); 091 092 Thread.sleep(3000); 093 } 094 095 private void verifyRadioAndCheckBoxGroupFunctionality() throws Exception 096 { 097 //Radio Group 098 Assert.assertTrue(isElementPresent("//fieldset[@class='uif-verticalRadioFieldset']/span/input[@type='radio' and @name='field24' and @value='1']")); 099 Assert.assertTrue(isElementPresent("//fieldset[@class='uif-verticalRadioFieldset']/span/input[@type='radio' and @name='field24' and @value='2']")); 100 Assert.assertTrue(isElementPresent("//fieldset[@class='uif-verticalRadioFieldset']/span/input[@type='radio' and @name='field24' and @value='3']")); 101 Assert.assertTrue(isElementPresent("//fieldset[@class='uif-verticalRadioFieldset']/span/input[@type='radio' and @name='field24' and @value='4']")); 102 103 //Checkbox Group 104 Assert.assertTrue(isElementPresent("//fieldset[@class='uif-verticalCheckboxesFieldset']/span/input[@type='checkbox' and @name='field115' and @value='1']")); 105 Assert.assertTrue(isElementPresent("//fieldset[@class='uif-verticalCheckboxesFieldset']/span/input[@type='checkbox' and @name='field115' and @value='2']")); 106 Assert.assertTrue(isElementPresent("//fieldset[@class='uif-verticalCheckboxesFieldset']/span/input[@type='checkbox' and @name='field115' and @value='3']")); 107 Assert.assertTrue(isElementPresent("//fieldset[@class='uif-verticalCheckboxesFieldset']/span/label/div/select[@name='field4']")); 108 109 //Checkbox Control 110 Assert.assertTrue(isElementPresent("//input[@type='checkbox' and @name='bField1']")); 111 Assert.assertTrue(isElementPresent("//input[@type='text' and @name='field103']")); 112 113 } 114 115 private void verifyLinkDeclarationsFunctionality() throws Exception 116 { 117 //Testing link tag 118 waitAndClick("//div[contains(., 'Testing link tag')]/a"); 119 Thread.sleep(4000); 120 selectWindow("title=Open Source Software | www.kuali.org"); 121 selectWindow("title=Kuali :: Rich Messages"); 122 123 //Testing methodToCall Action 124 waitAndClick("//div[contains(., 'Testing methodToCall action')]/a"); 125 Thread.sleep(3000); 126 Assert.assertTrue(isElementPresent("//div[@class='fancybox-wrap fancybox-desktop fancybox-type-html fancybox-opened']")); 127 Assert.assertTrue(isElementPresent("//div[@class='uif-validationMessages uif-groupValidationMessages uif-pageValidationMessages uif-pageValidationMessages-error']")); 128 Assert.assertTrue(isElementPresent("//div[@id='Demo-AdvancedMessagesSection']/div[@class='uif-validationMessages uif-groupValidationMessages']")); 129 Assert.assertTrue(isElementPresent("//div[@id='Demo-RadioCheckboxMessageSection']/div[@class='uif-validationMessages uif-groupValidationMessages']")); 130 131 //Testing methodToCall action (no client validation check) 132 waitAndClick("//div[contains(., 'Testing methodToCall action (no client validation check)')]/a"); 133 Assert.assertTrue(isElementPresent("//div[@class='uif-validationMessages uif-groupValidationMessages uif-pageValidationMessages uif-pageValidationMessages-error']")); 134 Assert.assertTrue(isElementPresent("//div[@class='uif-validationMessages uif-groupValidationMessages']")); 135 Assert.assertTrue(isElementPresent("//div[@class='uif-validationMessages uif-groupValidationMessages uif-pageValidationMessages uif-pageValidationMessages-error']")); 136 Assert.assertTrue(isElementPresent("//div[@id='Demo-AdvancedMessagesSection']/div[@class='uif-validationMessages uif-groupValidationMessages']")); 137 Assert.assertTrue(isElementPresent("//div[@id='Demo-RadioCheckboxMessageSection']/div[@class='uif-validationMessages uif-groupValidationMessages']")); 138 Thread.sleep(3000); 139 } 140 141 }