public async Task ProcessAsync_CallsIntoRouteLinkWithExpectedParameters() { // Arrange var context = new TagHelperContext( allAttributes: new TagHelperAttributeList( Enumerable.Empty <TagHelperAttribute>()), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "a", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Something"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); output.Content.SetContent(string.Empty); var generator = new Mock <IHtmlGenerator>(MockBehavior.Strict); generator .Setup(mock => mock.GenerateRouteLink( It.IsAny <ViewContext>(), string.Empty, "Default", "http", "contoso.com", "hello=world", It.IsAny <IDictionary <string, object> >(), null)) .Returns(new TagBuilder("a")) .Verifiable(); var anchorTagHelper = new AnchorTagHelper(generator.Object) { Fragment = "hello=world", Host = "contoso.com", Protocol = "http", Route = "Default", }; // Act & Assert await anchorTagHelper.ProcessAsync(context, output); generator.Verify(); Assert.Equal("a", output.TagName); Assert.Empty(output.Attributes); Assert.True(output.Content.GetContent().Length == 0); }
public void CanGetContent() { // Arrange var tagHelperContent = new DefaultTagHelperContent(); var expected = "Hello World!"; tagHelperContent.SetContent(expected); // Act var actual = tagHelperContent.GetContent(); // Assert Assert.Equal(expected, actual); }
public async Task Process_GeneratesExpectedOutput( Column column, DataRow dataRow, NameAndId nameAndId, string expectedContent) { // Arrange var expectedAttributes = new TagHelperAttributeList { { "class", "form-control" }, { "id", nameAndId.Id }, { "name", nameAndId.Name }, }; var expectedTagName = "not-textarea"; var tagHelper = GetTagHelper(column, dataRow: dataRow); var tagHelperContext = new TagHelperContext( tagName: "text-area", allAttributes: new TagHelperAttributeList(Enumerable.Empty <TagHelperAttribute>()), items: new Dictionary <object, object>(), uniqueId: "test"); var htmlAttributes = new TagHelperAttributeList { { "class", "form-control" }, }; var output = new TagHelperOutput( expectedTagName, htmlAttributes, getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Something"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }) { TagMode = TagMode.SelfClosing, }; output.Content.SetContent("original content"); // Act await tagHelper.ProcessAsync(tagHelperContext, output); // Assert Assert.Equal(TagMode.SelfClosing, output.TagMode); Assert.Equal(expectedAttributes, output.Attributes); Assert.Equal(expectedContent, HtmlContentUtilities.HtmlContentToString(output.Content)); Assert.Equal(expectedTagName, output.TagName); }
public void Fluent_Clear_Set_Append_WritesExpectedContent() { // Arrange var tagHelperContent = new DefaultTagHelperContent(); var expected = "HtmlEncode[[Hello ]]HtmlEncode[[World!]]"; tagHelperContent.SetContent("Some Random Content"); // Act tagHelperContent.Clear().SetContent("Hello ").Append("World!"); // Assert Assert.Equal(expected, tagHelperContent.GetContent(new HtmlTestEncoder())); }
public async Task ProcessAsync_CallsIntoGenerateValidationMessageWithExpectedParameters() { // Arrange var expectedViewContext = CreateViewContext(); var generator = new Mock <IHtmlGenerator>(); generator .Setup(mock => mock.GenerateValidationMessage(expectedViewContext, "Hello", null, null, null)) .Returns(new TagBuilder("span")) .Verifiable(); var validationMessageTagHelper = new ValidationMessageTagHelper(generator.Object) { For = CreateModelExpression("Hello") }; var expectedPreContent = "original pre-content"; var expectedContent = "original content"; var expectedPostContent = "original post-content"; var context = new TagHelperContext( allAttributes: new ReadOnlyTagHelperAttributeList <IReadOnlyTagHelperAttribute>( Enumerable.Empty <IReadOnlyTagHelperAttribute>()), items: new Dictionary <object, object>(), uniqueId: "test", getChildContentAsync: useCachedResult => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Something"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var output = new TagHelperOutput( "span", attributes: new TagHelperAttributeList()); output.PreContent.SetContent(expectedPreContent); output.Content.SetContent(expectedContent); output.PostContent.SetContent(expectedPostContent); validationMessageTagHelper.ViewContext = expectedViewContext; // Act & Assert await validationMessageTagHelper.ProcessAsync(context, output : output); generator.Verify(); Assert.Equal("span", output.TagName); Assert.Empty(output.Attributes); Assert.Equal(expectedPreContent, output.PreContent.GetContent()); Assert.Equal(expectedContent, output.Content.GetContent()); Assert.Equal(expectedPostContent, output.PostContent.GetContent()); }
protected TagHelperOutput GetSimpleTagHelperOutput() { var output = new TagHelperOutput("a", attributes: new TagHelperAttributeList(), getChildContentAsync: useCachedResult => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Something"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); output.Content.SetContent(string.Empty); return(output); }
private static TagHelperContext MakeTagHelperContext( TagHelperAttributeList attributes) { return(new TagHelperContext( attributes, items: new Dictionary <object, object>(), uniqueId: Guid.NewGuid().ToString("N"), getChildContentAsync: useCachedResult => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent(default(string)); return Task.FromResult <TagHelperContent>(tagHelperContent); })); }
private static TagHelperContext GetTagHelperContext(string id = "testid", string childContent = "some child content") { return(new TagHelperContext( allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: id, getChildContentAsync: useCachedResult => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent(childContent); return Task.FromResult <TagHelperContent>(tagHelperContent); })); }
private static TagHelperOutput MakeImageTagHelperOutput(TagHelperAttributeList attributes) { attributes = attributes ?? new TagHelperAttributeList(); return(new TagHelperOutput( "img", attributes, getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent(default(string)); return Task.FromResult <TagHelperContent>(tagHelperContent); })); }
public void SetHtmlContent_WithTagHelperContent_WorksAsExpected(string content, string expected) { // Arrange var tagHelperContent = new DefaultTagHelperContent(); var copiedTagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent(content); // Act copiedTagHelperContent.SetHtmlContent(tagHelperContent); // Assert Assert.Equal(expected, copiedTagHelperContent.GetContent(new HtmlTestEncoder())); }
public async Task ProcessAsync_CallsIntoGenerateFormWithExpectedParameters() { // Arrange var viewContext = CreateViewContext(); var context = new TagHelperContext( tagName: "form", allAttributes: new TagHelperAttributeList( Enumerable.Empty<TagHelperAttribute>()), items: new Dictionary<object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "form", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Something"); return Task.FromResult<TagHelperContent>(tagHelperContent); }); var generator = new Mock<IHtmlGenerator>(MockBehavior.Strict); generator .Setup(mock => mock.GenerateForm( viewContext, "Index", "Home", It.IsAny<IDictionary<string, object>>(), null, null)) .Returns(new TagBuilder("form")) .Verifiable(); var formTagHelper = new FormTagHelper(generator.Object) { Action = "Index", Antiforgery = false, Controller = "Home", ViewContext = viewContext, }; // Act & Assert await formTagHelper.ProcessAsync(context, output); generator.Verify(); Assert.Equal("form", output.TagName); Assert.Equal(TagMode.StartTagAndEndTag, output.TagMode); Assert.Empty(output.Attributes); Assert.Empty(output.PreElement.GetContent()); Assert.Empty(output.PreContent.GetContent()); Assert.True(output.Content.GetContent().Length == 0); Assert.Empty(output.PostContent.GetContent()); }
private static TagHelperOutput GetOutput() { var output = new TagHelperOutput( "test", new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Hello World"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); return(output); }
public void IsEmptyOrWhiteSpace_FalseAfterAppendTagHelperContent() { // Arrange var tagHelperContent = new DefaultTagHelperContent(); var copiedTagHelperContent = new DefaultTagHelperContent(); copiedTagHelperContent.SetContent("Hello"); // Act tagHelperContent.AppendHtml(copiedTagHelperContent); // Assert Assert.False(tagHelperContent.IsEmptyOrWhiteSpace); }
public async Task ProcessAsync_SupportsAntiforgeryIfActionIsSpecified( bool?antiforgery, string expectedPostContent) { // Arrange var viewContext = CreateViewContext(); var generator = new Mock <IHtmlGenerator>(); generator.Setup(mock => mock.GenerateAntiforgery(It.IsAny <ViewContext>())) .Returns(new HtmlString("<input />")); var formTagHelper = new FormTagHelper(generator.Object) { Antiforgery = antiforgery, ViewContext = viewContext, }; var output = new TagHelperOutput( tagName: "form", attributes: new TagHelperAttributeList { { "aCTiON", "my-action" }, }, getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Something"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var context = new TagHelperContext( tagName: "form", allAttributes: new TagHelperAttributeList( Enumerable.Empty <TagHelperAttribute>()), items: new Dictionary <object, object>(), uniqueId: "test"); // Act await formTagHelper.ProcessAsync(context, output); // Assert Assert.Equal("form", output.TagName); Assert.Equal(TagMode.StartTagAndEndTag, output.TagMode); var attribute = Assert.Single(output.Attributes); Assert.Equal(new TagHelperAttribute("aCTiON", "my-action"), attribute); Assert.Empty(output.PreContent.GetContent()); Assert.True(output.Content.GetContent().Length == 0); Assert.Equal(expectedPostContent, output.PostContent.GetContent()); }
public void WriteTo_WritesToATextWriter() { // Arrange var tagHelperContent = new DefaultTagHelperContent(); var writer = new StringWriter(); tagHelperContent.SetContent("Hello "); tagHelperContent.Append("World"); // Act tagHelperContent.WriteTo(writer, new HtmlTestEncoder()); // Assert Assert.Equal("HtmlEncode[[Hello ]]HtmlEncode[[World]]", writer.ToString()); }
public void Fluent_SetContent_AppendFormat_Append_WritesExpectedContent() { // Arrange var tagHelperContent = new DefaultTagHelperContent(); var expected = "HtmlEncode[[First ]]HtmlEncode[[Second]] Third HtmlEncode[[Fourth]]"; // Act tagHelperContent .SetContent("First ") .AppendFormat(CultureInfo.InvariantCulture, "{0} Third ", "Second") .Append("Fourth"); // Assert Assert.Equal(expected, tagHelperContent.GetContent(new HtmlTestEncoder())); }
public void CanAppendDefaultTagHelperContent() { // Arrange var tagHelperContent = new DefaultTagHelperContent(); var helloWorldContent = new DefaultTagHelperContent(); helloWorldContent.SetContent("HelloWorld"); var expected = "Content was HtmlEncode[[HelloWorld]]"; // Act tagHelperContent.AppendFormat(CultureInfo.InvariantCulture, "Content was {0}", helloWorldContent); // Assert Assert.Equal(expected, tagHelperContent.GetContent(new HtmlTestEncoder())); }
public async Task RichTextTagHelperShouldGenerateCorrectHTmlOutputWithTags() { //Arrange var taghelper = new ContentfulRichTextTagHelper(new HtmlRenderer()); taghelper.Document = new Document { Content = new List <IContent> { new Paragraph { Content = new List <IContent> { new Text { Value = "Hello friends!", Marks = new List <Mark> { new Mark { Type = "bold" }, new Mark { Type = "italic" } } } } } } }; var context = new TagHelperContext(new TagHelperAttributeList(), new Dictionary <object, object>(), "test"); var output = new TagHelperOutput("div", new TagHelperAttributeList(), (b, c) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent(string.Empty); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); //Act await taghelper.ProcessAsync(context, output); var html = output.Content.GetContent(); //Assert Assert.Equal("<p><strong><em>Hello friends!</em></strong></p>", html); }
public async Task ProcessAsync_WithDisableAutoFocusSpecified_GeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-notification-banner", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-notification-banner", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("The message."); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new NotificationBannerTagHelper() { DisableAutoFocus = true, Type = NotificationBannerType.Success }; // Act await tagHelper.ProcessAsync(context, output); // Assert var expectedHtml = @" <div class=""govuk-notification-banner govuk-notification-banner--success"" role=""alert"" aria-labelledby=""govuk-notification-banner-title"" data-module=""govuk-notification-banner"" data-disable-auto-focus=""true""> <div class=""govuk-notification-banner__header""> <h2 class=""govuk-notification-banner__title"" id=""govuk-notification-banner-title""> Success </h2> </div> <div class=""govuk-notification-banner__content""> The message. </div> </div>"; AssertEx.HtmlEqual(expectedHtml, output.RenderToString()); }
public async Task ProcessAsync_InvokesGeneratePageForm_WithOnlyPageHandler() { // Arrange var viewContext = CreateViewContext(); var context = new TagHelperContext( tagName: "form", allAttributes: new TagHelperAttributeList() { { "asp-handler", "page-handler" }, { "method", "get" } }, items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "form", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Something"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var generator = new Mock <IHtmlGenerator>(MockBehavior.Strict); generator .Setup(mock => mock.GeneratePageForm( viewContext, null, "page-handler", null, null, null, null)) .Returns(new TagBuilder("form")) .Verifiable(); var formTagHelper = new FormTagHelper(generator.Object) { ViewContext = viewContext, PageHandler = "page-handler", Method = "get" }; // Act & Assert await formTagHelper.ProcessAsync(context, output); generator.Verify(); }
public async Task ProcessAsync_SupportsAntiForgeryIfActionIsSpecified( bool?antiForgery, string expectedPostContent) { // Arrange var viewContext = CreateViewContext(); var generator = new Mock <IHtmlGenerator>(); generator.Setup(mock => mock.GenerateAntiForgery(It.IsAny <ViewContext>())) .Returns(new TagBuilder("input", new CommonTestEncoder())); var formTagHelper = new FormTagHelper(generator.Object) { AntiForgery = antiForgery, ViewContext = viewContext, }; var output = new TagHelperOutput("form", attributes: new TagHelperAttributeList { { "aCTiON", "my-action" }, }); var context = new TagHelperContext( allAttributes: new ReadOnlyTagHelperAttributeList <IReadOnlyTagHelperAttribute>( Enumerable.Empty <IReadOnlyTagHelperAttribute>()), items: new Dictionary <object, object>(), uniqueId: "test", getChildContentAsync: () => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Something"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); // Act await formTagHelper.ProcessAsync(context, output); // Assert Assert.Equal("form", output.TagName); Assert.False(output.SelfClosing); var attribute = Assert.Single(output.Attributes); Assert.Equal(new TagHelperAttribute("aCTiON", "my-action"), attribute); Assert.Empty(output.PreContent.GetContent()); Assert.True(output.Content.IsEmpty); Assert.Equal(expectedPostContent, output.PostContent.GetContent()); }
public void RenderMetaTags_ZeroValueForPlayerWidth_ExceptionThrown() { var expected = typeof(ArgumentOutOfRangeException); Exception thrownException = null; try { TwitterCardPlayer myTagHelper = new TwitterCardPlayer() { Title = TwitterCardAnswerKey.TitleValue, Description = TwitterCardAnswerKey.DescriptionValue, SiteUsername = TwitterCardAnswerKey.SiteUsernameValue, Image = new TwitterImage( TwitterCardAnswerKey.ImageUrlValue, TwitterCardAnswerKey.ImageWidthValue, TwitterCardAnswerKey.ImageHeightValue), Player = new TwitterPlayer( TwitterCardAnswerKey.PlayerUrlValue, 0, TwitterCardAnswerKey.PlayerHeightValue) }; var context = new TagHelperContext( new TagHelperAttributeList(), new Dictionary <object, object>(), Guid.NewGuid().ToString("N")); var output = new TagHelperOutput( "meta", new TagHelperAttributeList(), (cache, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent(string.Empty); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); myTagHelper.Process(context, output); } catch (Exception e) { thrownException = e; } Assert.Equal(expected, thrownException.GetType()); Assert.Equal("width", ((ArgumentException)thrownException).ParamName.ToString()); }
public void TestInitialize() { _context = new TagHelperContext( new TagHelperAttributeList(), new Dictionary <object, object>(), Guid.NewGuid().ToString("N")); _output = new TagHelperOutput( "responsive-images", new TagHelperAttributeList(), (_, __) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent(string.Empty); return(Task.FromResult <TagHelperContent>(tagHelperContent)); } ); }
public async Task ProcessAsync_InvokesGeneratePageForm() { // Arrange var viewContext = CreateViewContext(); var context = new TagHelperContext( tagName: "form", allAttributes: new TagHelperAttributeList( Enumerable.Empty <TagHelperAttribute>()), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "form", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Something"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var generator = new Mock <IHtmlGenerator>(MockBehavior.Strict); generator .Setup(mock => mock.GeneratePageForm( viewContext, "/Home/Admin/Post", "page-handler", null, "hello-world", null, null)) .Returns(new TagBuilder("form")) .Verifiable(); var formTagHelper = new FormTagHelper(generator.Object) { Antiforgery = false, ViewContext = viewContext, Page = "/Home/Admin/Post", PageHandler = "page-handler", Fragment = "hello-world", }; // Act & Assert await formTagHelper.ProcessAsync(context, output); generator.Verify(); }
private TagHelperContext MakeTagHelperContext( TagHelperAttributeList attributes = null, string content = null) { attributes = attributes ?? new TagHelperAttributeList(); return(new TagHelperContext( attributes, items: new Dictionary <object, object>(), uniqueId: Guid.NewGuid().ToString("N"), getChildContentAsync: () => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent(content); return Task.FromResult <TagHelperContent>(tagHelperContent); })); }
public async Task ProcessAsync_IsPageHeadingGeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-fieldset", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-fieldset", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var fieldsetContext = (FieldsetContext)context.Items[typeof(FieldsetContext)]; fieldsetContext.TrySetLegend( isPageHeading: true, attributes: null, content: new HtmlString("Legend text")); var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Main text"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new FieldsetTagHelper(new DefaultGovUkHtmlGenerator()) { DescribedBy = "describedby", Role = "therole" }; // Act await tagHelper.ProcessAsync(context, output); // Assert var html = output.AsString(); Assert.Equal( "<fieldset aria-describedby=\"describedby\" class=\"govuk-fieldset\" role=\"therole\">" + "<legend class=\"govuk-fieldset__legend\">" + "<h1 class=\"govuk-fieldset__heading\">Legend text</h1>" + "</legend>" + "Main text" + "</fieldset>", html); }
private TagHelperOutput MakeTagHelperOutput( string tagName, TagHelperAttributeList attributes = null, string childContent = null) { attributes = attributes ?? new TagHelperAttributeList(); return(new TagHelperOutput( tagName, attributes, getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent(childContent); return Task.FromResult <TagHelperContent>(tagHelperContent); })); }
public async Task ProcessAsync_WithTitle_GeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-notification-banner", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-notification-banner", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var notificationBannerContext = context.GetContextItem <NotificationBannerContext>(); notificationBannerContext.SetTitle(id: "title-id", headingLevel: 4, content: new HtmlString("Title")); var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("The message."); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new NotificationBannerTagHelper(); // Act await tagHelper.ProcessAsync(context, output); // Assert var expectedHtml = @" <div class=""govuk-notification-banner"" role=""region"" aria-labelledby=""title-id"" data-module=""govuk-notification-banner""> <div class=""govuk-notification-banner__header""> <h4 class=""govuk-notification-banner__title"" id=""title-id""> Title </h4> </div> <div class=""govuk-notification-banner__content""> The message. </div> </div>"; AssertEx.HtmlEqual(expectedHtml, output.RenderToString()); }
public async Task ProcessAsync_AddsActionToContext() { // Arrange var summaryListContext = new SummaryListContext(); var rowContext = new SummaryListRowContext(); var context = new TagHelperContext( tagName: "govuk-summary-list-row-action", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>() { { typeof(SummaryListContext), summaryListContext }, { typeof(SummaryListRowContext), rowContext } }, uniqueId: "test"); var output = new TagHelperOutput( "govuk-summary-list-row-action", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Action content"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new SummaryListRowActionTagHelper( new DefaultGovUkHtmlGenerator(), Mock.Of <IUrlHelperFactory>()) { Href = "href", VisuallyHiddenText = "vht" }; // Act await tagHelper.ProcessAsync(context, output); // Assert Assert.Equal(1, rowContext.Actions.Count); var firstAction = rowContext.Actions.First(); Assert.Equal("vht", firstAction.VisuallyHiddenText); Assert.Equal("href", firstAction.Href); Assert.Equal("Action content", firstAction.Content.AsString()); }
public async Task ProcessAsync_LegendHasIsPageHeading_GeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-fieldset", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-fieldset", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var fieldsetContext = context.GetContextItem <FieldsetContext>(); fieldsetContext.SetLegend( isPageHeading: true, attributes: null, content: new HtmlString("Legend text")); var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Main content"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new FieldsetTagHelper() { DescribedBy = "describedby", Role = "therole" }; // Act await tagHelper.ProcessAsync(context, output); // Assert var expectedHtml = @" <fieldset aria-describedby=""describedby"" class=""govuk-fieldset"" role=""therole""> <legend class=""govuk-fieldset__legend""> <h1 class=""govuk-fieldset__heading"">Legend text</h1> </legend> Main content </fieldset>"; AssertEx.HtmlEqual(expectedHtml, output.RenderToString()); }