Ejemplo n.º 1
0
        public static HtmlString SiteMapLinksToHtml(this IEnumerable <Url> control)
        {
            var renderer    = new SiteMapUrlRenderer();
            var siteMapUrls = new SiteMapUrls
            {
                Urls = control.ToList()
            };

            return(renderer.Render(siteMapUrls));
        }
        public void Is_Passed_An_Object_Of_SiteMapUrls_Then_Render_Returns_The_Html(SiteMapUrlRenderer renderer)
        {
            var urls = new SiteMapUrls();

            urls.Urls.Add(new Url
            {
                PageType   = "hub",
                Title      = "hub",
                Hub        = "hub",
                ParentSlug = "",
                Slug       = "hub"
            });

            urls.Urls.Add(new Url
            {
                PageType   = "LandingPage",
                Title      = "LandingPage",
                Hub        = "hub",
                ParentSlug = "",
                Slug       = "LandingPage"
            });

            urls.Urls.Add(new Url
            {
                PageType   = "article",
                Title      = "article",
                Hub        = "hub",
                ParentSlug = "LandingPage",
                Slug       = "article"
            });


            var actual = renderer.Render(urls);

            actual.Value.Should().NotBeNullOrWhiteSpace();
            actual.Value.Should().Be("<div class=\"govuk-grid-row\"><div class=\"govuk-grid-column-one-third\"><div class=\"fiu-feature-text\"><a class=\"fiu-tag fiu-tag--hub fiu-panel__tag\" href=\"/hub\">hub</a></div><ul class=\"govuk-list fiu-sitemap-list\"><li><a href=\"/hub/LandingPage\" class=\"fiu-link fiu-link--hub fiu-sitemap-list__link\">LandingPage</a><ul class=\"govuk-list fiu-sitemap-list__child-list\"><li><a href=\"/hub/article\" class=\"fiu-link fiu-link--hub\">article</a></li></ul></li></ul></div></div>");
        }
        private void AddLandingPageUrl(List <Url> landingPageUrls, TagBuilder parentDiv, SiteMapUrls sitemapUrls)
        {
            string currentLandingPage = null;
            var    ul = new TagBuilder("ul");

            ul.AddCssClass("govuk-list fiu-sitemap-list");

            foreach (var landingPageUrl in landingPageUrls)
            {
                if (string.Compare(currentLandingPage, landingPageUrl.Slug, StringComparison.OrdinalIgnoreCase) != 0)
                {
                    ul.InnerHtml.AppendHtml(
                        $"<li><a href=\"/{landingPageUrl.Hub.ToLowerInvariant()}/{landingPageUrl.Slug}\" class=\"fiu-link fiu-link--{ GetCssClassNameForHub(landingPageUrl.Hub)} fiu-sitemap-list__link\">{landingPageUrl.Title}</a>");

                    currentLandingPage = landingPageUrl.Slug;

                    var page = currentLandingPage;

                    AddArticlePageUrls(sitemapUrls.Urls.Where(o =>
                                                              string.Compare(o.ParentSlug, page, StringComparison.OrdinalIgnoreCase) == 0 &&
                                                              string.Compare(o.PageType, "Article", StringComparison.OrdinalIgnoreCase) == 0), ul);

                    ul.InnerHtml.AppendHtml("</li>");
                }
            }

            parentDiv.InnerHtml.AppendHtml(ul.WriteString());
        }
        public void Is_Passed_An_Object_Of_IHtmlControl_That_Is_Of_SiteMapUrls_Then_Supports_Content_Returns_True(SiteMapUrls urls, SiteMapUrlRenderer renderer)
        {
            var actual = renderer.SupportsContent(urls);

            actual.Should().BeTrue();
        }