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