/// <summary> /// Verify the form fields that are displayed /// </summary> private void VerifyFormDisplay() { MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.CompanyInputGroup, QuotePom.QuoteTestData.Company, FieldCss.Initial); MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.NameInputGroup, QuotePom.QuoteTestData.Name, FieldCss.Initial); MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.PhoneInputGroup, QuotePom.QuoteTestData.Phone, FieldCss.Initial); MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.EmailInputGroup, QuotePom.QuoteTestData.Email, FieldCss.Initial); MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.MessageInputGroup, QuotePom.QuoteTestData.Message, FieldCss.Initial); QuotePom.QuoteTestData.ClearText.MatchesActual(QuotePom.Clear.Text, "Clear Button"); QuotePom.QuoteTestData.SubmitText.MatchesActual(QuotePom.Submit.Text, "Submit Button"); // The recaptcha functionality was removed for now - July 2018 //Assert.IsTrue(QuotePom.Recaptcha.Displayed, "Recaptcha Missing"); //QuotePom.Recaptcha.GetAttribute("data-sitekey").MatchesActual(QuotePom.QuoteTestData.RecaptchaPublicKey, "Recaptcha Public Key"); // Verify the message field MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.MessageInputGroup, QuotePom.QuoteTestData.Message, FieldCss.Initial); }
/// <summary> /// /// </summary> /// <remarks> /// The input needs to have it's clicked function called to make the validation fire /// </remarks> private void VerifyTextareaValidation() { // Clear the fields to reset everything QuotePom.Clear.Click(); var input = MaterializeInputGroup.GetMaterializeInputField(QuotePom.MessageInputGroup, QuotePom.QuoteTestData.Message); MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.MessageInputGroup, QuotePom.QuoteTestData.Message, FieldCss.Initial); // Enter a valid value input.Click(); input.SendKeys(QuotePom.QuoteTestData.Message.UpdateTextTo("This is a test message")); QuotePom.Form.Click(); MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.MessageInputGroup, QuotePom.QuoteTestData.Message, FieldCss.Valid); // Enter an invalid value input.SendKeys(QuotePom.QuoteTestData.Message.UpdateTextTo(string.Empty)); input.Clear(); input.SendKeys(Keys.Delete); MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.MessageInputGroup, QuotePom.QuoteTestData.Message, FieldCss.Invalid); // Clear the fields QuotePom.Clear.Click(); MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.MessageInputGroup, QuotePom.QuoteTestData.Message, FieldCss.Initial); // Clear out the test value QuotePom.QuoteTestData.Message.InputText = null; // Clear the fields QuotePom.Clear.Click(); MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.MessageInputGroup, QuotePom.QuoteTestData.Message, FieldCss.Initial); // Enter an invalid value input.SendKeys(QuotePom.QuoteTestData.Message.UpdateTextTo(string.Empty)); // Submit the form and check the validation display QuotePom.Submit.Click(); // Because we're not active here we don't want to compare the validation label text MaterializeInputGroup.VerifyMaterializeInputField(QuotePom.MessageInputGroup, QuotePom.QuoteTestData.Message, FieldCss.Invalid); }
/// <summary> /// /// </summary> /// <param name="messageTestData"></param> private void InitializeMessage(MaterializeInputGroup messageTestData) { messageTestData.IconClasses = MaterializeCssStyles.MaterializeInputGroupIconClassesInitial; messageTestData.IconText = "message"; messageTestData.InputClasses = MaterializeCssStyles.MaterializeInputGroupInputClassesInitial; messageTestData.InputText = null; messageTestData.LabelClasses = MaterializeCssStyles.MaterializeInputGroupLabelClassesInitial; messageTestData.LabelText = "Message"; messageTestData.ValidationLabelClasses = MaterializeCssStyles.MaterializeInputGroupValidationLabelClassesInitial; messageTestData.ValidationLabelText = new Dictionary <string, string> { { "Required", "Please provide details" }, { "Length", "Please reduce the number of characters" } }; messageTestData.FieldInputType = "textarea"; messageTestData.Initialized = true; }
///// <summary> ///// ///// </summary> ///// <param name="value"></param> ///// <param name="getFor"></param> ///// <param name="isTextarea"></param> ///// <returns></returns> //public static string UpdateCssTo(this IMaterializeGroup value, string css, FieldCss getFor, bool isTextarea) //{ // if (isTextarea) css += MaterializeCssStyles.MaterializeTextarea; // return value.UpdateCssTo(css, getFor); //} ///// <summary> ///// ///// </summary> ///// <param name="value"></param> ///// <param name="getFor"></param> ///// <param name="abortFor"></param> ///// <returns></returns> //public static string UpdateCssTo(this IMaterializeGroup value, string css, FieldCss getFor, FieldCss abortFor) //{ // if (getFor == abortFor) return css; // return value.UpdateCssTo(css, getFor); //} /// <summary> /// Updates the value of the input element [InputText] for the input group to the value passed in /// </summary> /// <param name="inputGroup">The MaterializeInputGroup containing the input element</param> /// <param name="value">The new value for the input element</param> /// <returns>The value of the input element or the input group</returns> public static string UpdateTextTo(this MaterializeInputGroup inputGroup, string value) { inputGroup.InputText = value; return(inputGroup.InputText); }
/// <summary> /// /// </summary> /// <remarks> /// The input needs to have it's clicked function called to make the validation fire /// </remarks> private void VerifyInputValidation(IWebElement inputGroup, MaterializeInputGroup testData, string validValue, string invalidValueLength, string invalidValueRegEx) { var icon = MaterializeInputGroup.GetMaterializeIconField(inputGroup); var input = MaterializeInputGroup.GetMaterializeInputField(inputGroup, testData); // Clear the fields to reset everything QuotePom.Clear.Click(); // Test - Initial MaterializeInputGroup.VerifyMaterializeInputField(inputGroup, testData, FieldCss.Initial); // Test - Valid Value input.SendKeys(testData.UpdateTextTo(validValue)); icon.Click(); input.Click(); MaterializeInputGroup.VerifyMaterializeInputField(inputGroup, testData, FieldCss.Valid); // Test - Invalid Regex Value input.Clear(); input.SendKeys(testData.UpdateTextTo(invalidValueRegEx)); icon.Click(); input.Click(); MaterializeInputGroup.VerifyMaterializeInputField(inputGroup, testData, FieldCss.Invalid, "RegEx"); // Clear the fields input.SendKeys(testData.UpdateTextTo(string.Empty)); QuotePom.Clear.Click(); MaterializeInputGroup.VerifyMaterializeInputField(inputGroup, testData, FieldCss.Initial); // Enter an invalid value - Length input.SendKeys(testData.UpdateTextTo(invalidValueLength)); icon.Click(); _actions.MoveToElement(input).Click().Build().Perform(); MaterializeInputGroup.VerifyMaterializeInputField(inputGroup, testData, FieldCss.Invalid, "Length"); // Enter an invalid value - Missing input.SendKeys(testData.UpdateTextTo(string.Empty)); input.Clear(); icon.Click(); _actions.MoveToElement(input).Click().Build().Perform(); MaterializeInputGroup.VerifyMaterializeInputField(inputGroup, testData, FieldCss.Invalid, "Required"); // Enter a valid value input.Clear(); input.SendKeys(testData.UpdateTextTo(validValue)); icon.Click(); input.Click(); MaterializeInputGroup.VerifyMaterializeInputField(inputGroup, testData, FieldCss.Valid); // Clear out the test value testData.InputText = null; // Clear the fields QuotePom.Clear.Click(); MaterializeInputGroup.VerifyMaterializeInputField(inputGroup, testData, FieldCss.Initial); // Enter an invalid value input.SendKeys(testData.UpdateTextTo(invalidValueRegEx)); // Submit the form and check the validation display QuotePom.Submit.Click(); // Check in validation message input.Click(); MaterializeInputGroup.VerifyMaterializeInputField(inputGroup, testData, FieldCss.Invalid, "RegEx"); }