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;
 }
Exemple #2
0
    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);
        }

      }
    }