Exemplo n.º 1
0
        public async Task ProcessAsync_GeneratesExpectedOutput()
        {
            // Arrange
            var context = new TagHelperContext(
                tagName: "govuk-breadcrumbs",
                allAttributes: new TagHelperAttributeList(),
                items: new Dictionary <object, object>(),
                uniqueId: "test");

            var output = new TagHelperOutput(
                "govuk-breadcrumbs",
                attributes: new TagHelperAttributeList(),
                getChildContentAsync: (useCachedResult, encoder) =>
            {
                var bcContext = (BreadcrumbsContext)context.Items[typeof(BreadcrumbsContext)];

                bcContext.AddItem(new BreadcrumbsItem()
                {
                    Href    = "first",
                    Content = new HtmlString("First")
                });

                bcContext.AddItem(new BreadcrumbsItem()
                {
                    Href    = "second",
                    Content = new HtmlString("Second")
                });

                bcContext.AddItem(new BreadcrumbsItem()
                {
                    Content       = new HtmlString("Last"),
                    IsCurrentPage = true
                });

                var tagHelperContent = new DefaultTagHelperContent();
                return(Task.FromResult <TagHelperContent>(tagHelperContent));
            });

            var tagHelper = new BreadcrumbsTagHelper(new DefaultGovUkHtmlGenerator());

            // Act
            await tagHelper.ProcessAsync(context, output);

            // Assert
            var html = output.AsString();

            Assert.Equal(
                "<div class=\"govuk-breadcrumbs\">" +
                "<ol class=\"govuk-breadcrumbs__list\">" +
                "<li class=\"govuk-breadcrumbs__list-item\"><a class=\"govuk-breadcrumbs__link\" href=\"first\">First</a></li>" +
                "<li class=\"govuk-breadcrumbs__list-item\"><a class=\"govuk-breadcrumbs__link\" href=\"second\">Second</a></li>" +
                "<li aria-current=\"page\" class=\"govuk-breadcrumbs__list-item\">Last</li>" +
                "</ol>" +
                "</div>",
                html);
        }
        public async Task ProcessAsync_GeneratesExpectedOutput()
        {
            // Arrange
            var context = new TagHelperContext(
                tagName: "govuk-breadcrumbs",
                allAttributes: new TagHelperAttributeList(),
                items: new Dictionary <object, object>(),
                uniqueId: "test");

            var output = new TagHelperOutput(
                "govuk-breadcrumbs",
                attributes: new TagHelperAttributeList(),
                getChildContentAsync: (useCachedResult, encoder) =>
            {
                var breadcrumbsContext = context.GetContextItem <BreadcrumbsContext>();

                breadcrumbsContext.AddItem(new BreadcrumbsItem()
                {
                    Href    = "first",
                    Content = new HtmlString("First")
                });

                breadcrumbsContext.AddItem(new BreadcrumbsItem()
                {
                    Href    = "second",
                    Content = new HtmlString("Second")
                });

                breadcrumbsContext.AddItem(new BreadcrumbsItem()
                {
                    Content = new HtmlString("Last")
                });

                var tagHelperContent = new DefaultTagHelperContent();
                return(Task.FromResult <TagHelperContent>(tagHelperContent));
            });

            var tagHelper = new BreadcrumbsTagHelper();

            // Act
            await tagHelper.ProcessAsync(context, output);

            // Assert
            var expectedHtml = @"
<div class=""govuk-breadcrumbs"">
    <ol class=""govuk-breadcrumbs__list"">
        <li class=""govuk-breadcrumbs__list-item""><a class=""govuk-breadcrumbs__link"" href=""first"">First</a></li>
        <li class=""govuk-breadcrumbs__list-item""><a class=""govuk-breadcrumbs__link"" href=""second"">Second</a></li>
        <li aria-current=""page"" class=""govuk-breadcrumbs__list-item"">Last</li>
    </ol>
</div>";

            AssertEx.HtmlEqual(@expectedHtml, output.RenderToString());
        }