public void SetResolutionScenario(PageLink pageLink, PageValidationError pageValidationError) { var resolutionOwner = TestSettings.Instance.DefaultDocumentationOwner; if (pageLink.ReferencingPage.State.Keys.Contains(DocPageValidatorResources.PageStateKeyOwner)) resolutionOwner = pageLink.ReferencingPage.State[DocPageValidatorResources.PageStateKeyOwner].ToString(); var sprint = TestSettings.Instance.CurrentSprint; var priority = TestSettings.Instance.ErrorResolutionPriorities[pageValidationError.ValidationType]; var resolutionScenario = String.Format(DocPageValidatorResources.InvalidPageLinkResolutionScenario, sprint, resolutionOwner, priority, pageLink.LinkText, pageLink.ReferencingPage.Url.AbsoluteUri); pageValidationError.ResolutionScenario = resolutionScenario; }
public void LoadChildPages(Page page) { var response = browser.NavigateToPage(page.Url); pageValidators.ForEach(x => x.ValidatePage(page, response)); var linkNodes = response.Html.CssSelect("a"); foreach (var linkNode in linkNodes) { Uri linkUri = null; var linkHref = linkNode.Attributes["href"].Value; if (linkHref.StartsWith("/")) linkUri = new Uri(RootUrl, linkHref); else if (linkHref.StartsWith("http")) linkUri = new Uri(linkHref); else linkUri = new Uri(page.Url, linkHref); var linkText = linkNode.InnerText; var referencedPage = pages.Where(x => x.Url.AbsoluteUri == linkUri.AbsoluteUri).FirstOrDefault(); if (referencedPage != null) { var pageReference = referencedPage.PageLinks.Where(x => x.LinkText == linkText && x.ReferencingPage.Url.AbsoluteUri == page.Url.AbsoluteUri).SingleOrDefault(); if (pageReference == null) { var pageLink = new PageLink(page, referencedPage, linkText, linkHref); } } else { referencedPage = new Page(linkUri, page, linkText, linkHref, RootUrl); pages.Add(referencedPage); } } }