コード例 #1
0
        public async Task ProcessAsync_NoRowHasActions_GeneratesExpectedOutput()
        {
            // Arrange
            var context = new TagHelperContext(
                tagName: "govuk-summary-list",
                allAttributes: new TagHelperAttributeList(),
                items: new Dictionary <object, object>(),
                uniqueId: "test");

            var output = new TagHelperOutput(
                "govuk-summary-list",
                attributes: new TagHelperAttributeList(),
                getChildContentAsync: (useCachedResult, encoder) =>
            {
                var summaryListContent = (SummaryListContext)context.Items[typeof(SummaryListContext)];

                summaryListContent.AddRow(new SummaryListRow()
                {
                    Key     = new HtmlString("Row 1 key"),
                    Value   = new HtmlString("Row 1 value"),
                    Actions = Enumerable.Empty <SummaryListRowAction>()
                });

                summaryListContent.AddRow(new SummaryListRow()
                {
                    Key     = new HtmlString("Row 2 key"),
                    Value   = new HtmlString("Row 2 value"),
                    Actions = Enumerable.Empty <SummaryListRowAction>()
                });

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

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

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

            // Assert
            Assert.Equal(
                "<dl class=\"govuk-summary-list\">" +
                "<div class=\"govuk-summary-list__row\">" +
                "<dt class=\"govuk-summary-list__key\">Row 1 key</dt>" +
                "<dt class=\"govuk-summary-list__value\">Row 1 value</dt>" +
                "</div>" +
                "<div class=\"govuk-summary-list__row\">" +
                "<dt class=\"govuk-summary-list__key\">Row 2 key</dt>" +
                "<dt class=\"govuk-summary-list__value\">Row 2 value</dt>" +
                "</div>" +
                "</dl>",
                output.AsString());
        }
コード例 #2
0
        public async Task ProcessAsync_GeneratesExpectedOutput()
        {
            // Arrange
            var context = new TagHelperContext(
                tagName: "govuk-summary-list",
                allAttributes: new TagHelperAttributeList(),
                items: new Dictionary <object, object>(),
                uniqueId: "test");

            var output = new TagHelperOutput(
                "govuk-summary-list",
                attributes: new TagHelperAttributeList(),
                getChildContentAsync: (useCachedResult, encoder) =>
            {
                var summaryListContent = (SummaryListContext)context.Items[typeof(SummaryListContext)];

                summaryListContent.AddRow(new SummaryListRow()
                {
                    Key = new SummaryListRowKey()
                    {
                        Content = new HtmlString("Row 1 key")
                    },
                    Value = new SummaryListRowValue()
                    {
                        Content = new HtmlString("Row 1 value")
                    },
                    Actions = new SummaryListRowActions()
                    {
                        Items = new[]
                        {
                            new SummaryListRowAction()
                            {
                                Attributes = new AttributeDictionary()
                                {
                                    { "href", "row1action1" }
                                },
                                Content            = new HtmlString("Row 1 action 1 content"),
                                VisuallyHiddenText = "row1action1vht"
                            },
                            new SummaryListRowAction()
                            {
                                Attributes = new AttributeDictionary()
                                {
                                    { "href", "row1action2" }
                                },
                                Content            = new HtmlString("Row 1 action 2 content"),
                                VisuallyHiddenText = "row1action2vht"
                            }
                        }
                    }
                });

                summaryListContent.AddRow(new SummaryListRow()
                {
                    Key = new SummaryListRowKey()
                    {
                        Content = new HtmlString("Row 2 key")
                    },
                    Value = new SummaryListRowValue()
                    {
                        Content = new HtmlString("Row 2 value")
                    }
                });

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

            var tagHelper = new SummaryListTagHelper(new ComponentGenerator());

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

            // Assert
            var expectedHtml = @"
<dl class=""govuk-summary-list"">
    <div class=""govuk-summary-list__row"">
        <dt class=""govuk-summary-list__key"">Row 1 key</dt>
        <dd class=""govuk-summary-list__value"">Row 1 value</dd>
        <dd class=""govuk-summary-list__actions"">
            <ul class=""govuk-summary-list__actions-list"">
                <li class=""govuk-summary-list__actions-list-item"">
                    <a class=""govuk-link"" href=""row1action1"">Row 1 action 1 content<span class=""govuk-visually-hidden"">row1action1vht</span></a>
                </li>
                <li class=""govuk-summary-list__actions-list-item"">
                    <a class=""govuk-link"" href=""row1action2"">Row 1 action 2 content<span class=""govuk-visually-hidden"">row1action2vht</span></a>
                </li>
            </ul>
        </dd>
    </div>
    <div class=""govuk-summary-list__row govuk-summary-list__row--no-actions"">
        <dt class=""govuk-summary-list__key"">Row 2 key</dt>
        <dd class=""govuk-summary-list__value"">Row 2 value</dd>
    </div>
</dl>";

            AssertEx.HtmlEqual(expectedHtml, output.RenderToString());
        }
コード例 #3
0
        public async Task ProcessAsync_GeneratesExpectedOutput()
        {
            // Arrange
            var context = new TagHelperContext(
                tagName: "govuk-summary-list",
                allAttributes: new TagHelperAttributeList(),
                items: new Dictionary <object, object>(),
                uniqueId: "test");

            var output = new TagHelperOutput(
                "govuk-summary-list",
                attributes: new TagHelperAttributeList(),
                getChildContentAsync: (useCachedResult, encoder) =>
            {
                var summaryListContent = (SummaryListContext)context.Items[typeof(SummaryListContext)];

                summaryListContent.AddRow(new SummaryListRow()
                {
                    Key     = new HtmlString("Row 1 key"),
                    Value   = new HtmlString("Row 1 value"),
                    Actions = new[]
                    {
                        new SummaryListRowAction()
                        {
                            Content            = new HtmlString("Row 1 action 1 content"),
                            Href               = "row1action1",
                            VisuallyHiddenText = "row1action1vht"
                        },
                        new SummaryListRowAction()
                        {
                            Content            = new HtmlString("Row 1 action 2 content"),
                            Href               = "row1action2",
                            VisuallyHiddenText = "row1action2vht"
                        }
                    }
                });

                summaryListContent.AddRow(new SummaryListRow()
                {
                    Key     = new HtmlString("Row 2 key"),
                    Value   = new HtmlString("Row 2 value"),
                    Actions = Enumerable.Empty <SummaryListRowAction>()
                });

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

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

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

            // Assert
            Assert.Equal(
                "<dl class=\"govuk-summary-list\">" +
                "<div class=\"govuk-summary-list__row\">" +
                "<dt class=\"govuk-summary-list__key\">Row 1 key</dt>" +
                "<dt class=\"govuk-summary-list__value\">Row 1 value</dt>" +
                "<dd class=\"govuk-summary-list__actions\">" +
                "<ul class=\"govuk-summary-list__actions-list\">" +
                "<li class=\"govuk-summary-list__actions-list-item\">" +
                "<a class=\"govuk-link\" href=\"row1action1\">Row 1 action 1 content<span class=\"govuk-visually-hidden\">row1action1vht</span></a>" +
                "</li>" +
                "<li class=\"govuk-summary-list__actions-list-item\">" +
                "<a class=\"govuk-link\" href=\"row1action2\">Row 1 action 2 content<span class=\"govuk-visually-hidden\">row1action2vht</span></a>" +
                "</li>" +
                "</ul>" +
                "</dd>" +
                "</div>" +
                "<div class=\"govuk-summary-list__row\">" +
                "<dt class=\"govuk-summary-list__key\">Row 2 key</dt>" +
                "<dt class=\"govuk-summary-list__value\">Row 2 value</dt>" +
                "<span class=\"govuk-summary-list__actions\"></span>" +
                "</div>" +
                "</dl>",
                output.AsString());
        }
コード例 #4
0
        public async Task ProcessAsync_NoRowHasActions_GeneratesExpectedOutput()
        {
            // Arrange
            var context = new TagHelperContext(
                tagName: "govuk-summary-list",
                allAttributes: new TagHelperAttributeList(),
                items: new Dictionary <object, object>(),
                uniqueId: "test");

            var output = new TagHelperOutput(
                "govuk-summary-list",
                attributes: new TagHelperAttributeList(),
                getChildContentAsync: (useCachedResult, encoder) =>
            {
                var summaryListContent = (SummaryListContext)context.Items[typeof(SummaryListContext)];

                summaryListContent.AddRow(new SummaryListRow()
                {
                    Key = new SummaryListRowKey()
                    {
                        Content = new HtmlString("Row 1 key")
                    },
                    Value = new SummaryListRowValue()
                    {
                        Content = new HtmlString("Row 1 value")
                    }
                });

                summaryListContent.AddRow(new SummaryListRow()
                {
                    Key = new SummaryListRowKey()
                    {
                        Content = new HtmlString("Row 2 key")
                    },
                    Value = new SummaryListRowValue()
                    {
                        Content = new HtmlString("Row 2 value")
                    }
                });

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

            var tagHelper = new SummaryListTagHelper(new ComponentGenerator());

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

            // Assert
            var expectedHtml = @"
<dl class=""govuk-summary-list"">
    <div class=""govuk-summary-list__row"">
        <dt class=""govuk-summary-list__key"">Row 1 key</dt>
        <dd class=""govuk-summary-list__value"">Row 1 value</dd>
    </div>
    <div class=""govuk-summary-list__row"">
        <dt class=""govuk-summary-list__key"">Row 2 key</dt>
        <dd class=""govuk-summary-list__value"">Row 2 value</dd>
    </div>
</dl>";

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