/// <summary> /// Renders the recaptcha HTML in an MVC view. It is an extension method to the <see cref="System.Web.Mvc.HtmlHelper"/> class. /// </summary> /// <param name="htmlHelper">The <see cref="System.Web.Mvc.HtmlHelper"/> object to which the extension is added.</param> /// <param name="publicKey">Sets the public key of recaptcha.</param> /// <param name="theme">Sets the theme of recaptcha.</param> /// <param name="language">Sets the language of recaptcha. If no language is specified, the language of the current UI culture will be used.</param> /// <param name="tabIndex">Sets the tab index of recaptcha.</param> /// <param name="dataType">Sets the data type of recaptcha.</param> /// <param name="dataSize">Sets the size of recaptcha.</param> /// <param name="useSsl">Sets the value to the UseSsl property.</param> /// <param name="apiVersion">Determines the version of the reCAPTCHA API.</param> /// <returns>Returns an instance of the IHtmlString type.</returns> public static IHtmlString Recaptcha( this HtmlHelper htmlHelper, string publicKey = "{recaptchaPublicKey}", RecaptchaTheme theme = RecaptchaTheme.Red, string language = null, int tabIndex = 0, RecaptchaDataType? dataType = null, RecaptchaDataSize? dataSize = null, SslBehavior useSsl = SslBehavior.SameAsRequestUrl, string apiVersion = "{recaptchaApiVersion}") { IRecaptchaHtmlHelper rHtmlHelper = null; string version = RecaptchaKeyHelper.ParseKey(apiVersion); if (version != "2") { rHtmlHelper = new RecaptchaHtmlHelper(publicKey, theme, language, tabIndex, useSsl); } else { rHtmlHelper = new Recaptcha2HtmlHelper(publicKey, theme, language, tabIndex, dataType, dataSize, useSsl); } var writer = new HtmlTextWriter(new StringWriter()); writer.Write(rHtmlHelper.ToString()); return htmlHelper.Raw(writer.InnerWriter.ToString()); }
public void PublicKeyIsPassedCorrectly() { var key = "TestKey"; var target = new RecaptchaHtmlHelper(key); Assert.AreEqual(key, target.PublicKey); }
public void LanguageIsPassedCorrectly() { var language = "en"; var target = new RecaptchaHtmlHelper("TestKey", RecaptchaTheme.Red, language, 0); Assert.AreEqual(language, target.Language); }
/// <summary> /// Renders the recaptcha HTML in an MVC view. It is an extension method to the <see cref="System.Web.Mvc.HtmlHelper"/> class. /// </summary> /// <param name="htmlHelper">The <see cref="System.Web.Mvc.HtmlHelper"/> object to which the extension is added.</param> /// <param name="publicKey">Sets the public key of recaptcha.</param> /// <param name="theme">Sets the theme of recaptcha.</param> /// <param name="language">Sets the language of recaptcha. If no language is specified, the language of the current UI culture will be used.</param> /// <param name="tabIndex">Sets the tab index of recaptcha.</param> /// <param name="useSsl">Sets the value to the UseSsl property.</param> /// <returns>Returns an instance of the IHtmlString type.</returns> public static IHtmlString Recaptcha( this HtmlHelper htmlHelper, string publicKey = "{recaptchaPublicKey}", RecaptchaTheme theme = RecaptchaTheme.Red, string language = null, int tabIndex = 0, bool useSsl = false) { RecaptchaHtmlHelper rHtmlHelper = new RecaptchaHtmlHelper(publicKey, theme, language, tabIndex, useSsl); HtmlTextWriter writer = new HtmlTextWriter(new StringWriter()); writer.Write(rHtmlHelper.ToString()); return htmlHelper.Raw(writer.InnerWriter.ToString()); }
/// <summary> /// Redners the HTML output. This method is automatically called by ASP.NET during the rendering process. /// </summary> /// <param name="output">The output object to which the method will write HTML to.</param> /// <exception cref="InvalidOperationException">The exception is thrown if the public key is not set.</exception> protected override void RenderContents(HtmlTextWriter output) { if (this.DesignMode) { output.Write("<p>Recaptcha Control</p>"); } else { RecaptchaHtmlHelper htmlHelper = new RecaptchaHtmlHelper(this.PublicKey, this.Theme, this.Language, this.TabIndex); output.Write(htmlHelper.ToString()); } }
/// <summary> /// Redners the HTML output. This method is automatically called by ASP.NET during the rendering process. /// </summary> /// <param name="output">The output object to which the method will write HTML to.</param> /// <exception cref="InvalidOperationException">The exception is thrown if the public key is not set.</exception> protected override void RenderContents(HtmlTextWriter output) { if (this.DesignMode) { output.Write("<p>Recaptcha Control</p>"); } else { IRecaptchaHtmlHelper htmlHelper = null; string apiVersion = RecaptchaKeyHelper.ParseKey(ApiVersion); if (apiVersion != "2") { htmlHelper = new RecaptchaHtmlHelper(this.PublicKey, this.Theme, this.Language, this.TabIndex, this.UseSsl); } else { htmlHelper = new Recaptcha2HtmlHelper(this.PublicKey, this.Theme, this.Language, this.TabIndex, this.DataType, this.DataSize, this.UseSsl); } output.Write(htmlHelper.ToString()); } }
public void PublicKeyIsParsedCorrectly() { var target = new RecaptchaHtmlHelper("{TestKey}"); Assert.AreEqual("TestValue", target.PublicKey); }
public void CleanThemeIsPassedCorrectly() { var target = new RecaptchaHtmlHelper("TestKey", RecaptchaTheme.Clean, null, 0); Assert.AreEqual(RecaptchaTheme.Clean, target.Theme); }