public void Process_ShouldThrow_WhenOutputTagIsNull() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object); // Act // Assert Assert.Throws <ArgumentNullException>(() => scriptTagHelper.Process(_context, null)); }
public void Process_ShouldChangeTagTo_ScriptTag() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object); // Act scriptTagHelper.Process(_context, _tagHelperOutput); // Assert Assert.AreEqual("script", _tagHelperOutput.TagName); }
public void Process_ShouldAdd_DeferAttribute() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object); // Act scriptTagHelper.Process(_context, _tagHelperOutput); // Assert Assert.IsTrue(_tagHelperOutput.Attributes.ContainsName("defer")); }
public void Construction_IsSuccessful() { // Arrange // Act var instance = new RecaptchaScriptTagHelper(_settingsMock.Object); // Assert Assert.NotNull(instance); _settingsMock.Verify(settings => settings.CurrentValue, Times.Once); }
public void Process_ShouldAdd_SrcAttribute() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object); // Act scriptTagHelper.Process(_context, _tagHelperOutput); // Assert Assert.IsTrue(_tagHelperOutput.Attributes.ContainsName("src")); Assert.AreEqual(RecaptchaScriptTagHelper.RecaptchaScriptEndpoint, _tagHelperOutput.Attributes["src"].Value); }
public void Process_ShouldNotContain_Content() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object); _tagHelperOutput.Content.SetContent("<p>Inner HTML<p>"); // Act scriptTagHelper.Process(_context, _tagHelperOutput); // Assert Assert.IsTrue(_tagHelperOutput.Content.IsEmptyOrWhiteSpace); }
public void Process_ShouldChange_TagModeTo_StartTagAndEndTag() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object); _tagHelperOutput.TagMode = TagMode.SelfClosing; // Act scriptTagHelper.Process(_context, _tagHelperOutput); // Assert Assert.AreEqual(TagMode.StartTagAndEndTag, _tagHelperOutput.TagMode); }
public void Process_ByDefault_ContainsThreeAttributes() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object); // Act scriptTagHelper.Process(_context, _tagHelperOutput); // Assert Assert.AreEqual(3, _tagHelperOutput.Attributes.Count); Assert.IsTrue(_tagHelperOutput.Attributes.ContainsName("src")); Assert.IsTrue(_tagHelperOutput.Attributes.ContainsName("async")); Assert.IsTrue(_tagHelperOutput.Attributes.ContainsName("defer")); }
public void Process_ShouldAddExplicit_ToQueryRenderKey() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object) { Render = Render.Explicit }; // Act scriptTagHelper.Process(_context, _tagHelperOutput); var query = QueryHelpers.ParseQuery(new Uri(_tagHelperOutput.Attributes["src"].Value.ToString()).Query); // Assert Assert.AreEqual("explicit", query["render"]); }
public void Process_ShouldNotAdd_HlToQuery_WhenRenderIsV3() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object) { Render = Render.V3, Language = "fi" }; // Act scriptTagHelper.Process(_context, _tagHelperOutput); var query = QueryHelpers.ParseQuery(new Uri(_tagHelperOutput.Attributes["src"].Value.ToString()).Query); // Assert Assert.IsFalse(query.ContainsKey("hl")); }
public void Process_ShouldAdd_RenderSiteKeyToQuery_WhenRenderIsV3AndExplicit() { // Arrange var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object) { Render = Render.V3 | Render.Explicit }; // Act scriptTagHelper.Process(_context, _tagHelperOutput); var query = QueryHelpers.ParseQuery(new Uri(_tagHelperOutput.Attributes["src"].Value.ToString()).Query); // Assert _settingsMock.Verify(); Assert.IsTrue(query.ContainsKey("render")); Assert.AreEqual(SiteKey, query["render"]); }
public void Process_ShouldNotAdd_CallbackToQuery_WhenRenderIsV3() { // Arrange var callback = "myCallback"; var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object) { OnloadCallback = callback, Render = Render.V3 }; // Act scriptTagHelper.Process(_context, _tagHelperOutput); var query = QueryHelpers.ParseQuery(new Uri(_tagHelperOutput.Attributes["src"].Value.ToString()).Query); // Assert Assert.IsFalse(query.ContainsKey("onload")); }
public void Process_ShouldAdd_CallbackToQuery() { // Arrange var callback = "myCallback"; var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object) { OnloadCallback = callback }; // Act scriptTagHelper.Process(_context, _tagHelperOutput); var query = QueryHelpers.ParseQuery(new Uri(_tagHelperOutput.Attributes["src"].Value.ToString()).Query); // Assert Assert.IsTrue(query.ContainsKey("onload")); Assert.AreEqual(callback, query["onload"]); }
public void Process_ShouldAdd_HlToQuery() { // Arrange var language = "fi"; var scriptTagHelper = new RecaptchaScriptTagHelper(_settingsMock.Object) { Language = language }; // Act scriptTagHelper.Process(_context, _tagHelperOutput); var query = QueryHelpers.ParseQuery(new Uri(_tagHelperOutput.Attributes["src"].Value.ToString()).Query); // Assert Assert.IsTrue(query.ContainsKey("hl")); Assert.AreEqual(language, query["hl"]); }
private TagHelperOutput ProcessTagHelper(RecaptchaService service, IHttpContextAccessor httpContextAccessor, TagHelperAttributeList attributes, Action <RecaptchaScriptTagHelper> config = null) { var tagHelper = new RecaptchaScriptTagHelper(service, httpContextAccessor); config?.Invoke(tagHelper); var tagHelperContext = new TagHelperContext( allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( tagName: "doesntmatter", attributes: attributes, getChildContentAsync: (useCachedResult, encoder) => { return(Task.FromResult <TagHelperContent>(new DefaultTagHelperContent())); }); tagHelper.Process(tagHelperContext, output); return(output); }