public void GetPageLinks_PassLayoutWithLinks_DoNotContainAnchor() { var anchor = "#pageanchor"; HtmlLinkManager linkManager = new HtmlLinkManager(); var actualLinks = linkManager.GetPageLinks(pageWithLinks).ToList(); Assert.IsTrue(!actualLinks.Contains(anchor)); }
public void GetPageResourceLink_PassLayoutWithoutLink_ReturnEmptyCollection() { var expected = new List <string>(); HtmlLinkManager linkManager = new HtmlLinkManager(); var actual = linkManager.GetPageResourceLink(pageWithoutLinks).ToList(); CollectionAssert.AreEqual(expected, actual); }
public void IsLinkAnchor_NoAnchors_AllFalse() { var links = new List <string>() { "https://linkmanagertests.com/buttons.css", "https://linkmanagertests.com/home", "https://linkmanagertests.com/img/hello/hello.png", "https://linkmanagertests.com/scripts/script.js" }; bool[] expected = { false, false, false, false }; HtmlLinkManager linkManager = new HtmlLinkManager(); var actual = links.Select(link => linkManager.IsLinkAnchor(link)).ToList(); CollectionAssert.AreEqual(expected, actual); }
public void GetPageResourceLink_PassLayoutWithLinks_ReturnResourceLinkCollection() { var expectedLinks = new List <string>() { "https://linkmanagertests.com/index.css", "https://linkmanagertests.com/buttons.css", "https://linkmanagertests.com/img/hello/hello.png", "https://linkmanagertests.com/img/hello/hello.jpg", "https://linkmanagertests.com/img/hello/hello.ico", "https://linkmanagertests.com/scripts/script.js" }; HtmlLinkManager linkManager = new HtmlLinkManager(); var actual = linkManager.GetPageResourceLink(pageWithLinks).ToList(); CollectionAssert.AreEqual(expectedLinks, actual); }
public void GetPageResourceLink_PassLayoutWithLinks_PngAndCSSLinksRestricted_ReturnResourceLinkCollectionWithoutRestricted() { var expectedLinks = new List <string>() { "https://linkmanagertests.com/img/hello/hello.jpg", "https://linkmanagertests.com/img/hello/hello.ico", "https://linkmanagertests.com/scripts/script.js" }; IEnumerable <string> forbiddenFormats = new List <string>() { ".png", ".css" }; HtmlLinkManager linkManager = new HtmlLinkManager(forbiddenFormats); var actual = linkManager.GetPageResourceLink(pageWithLinks).ToList(); CollectionAssert.AreEqual(expectedLinks, actual); }
public void IsLinkFormatForbidden_NoForbiddenFormats_ReturnAll() { var links = new List <string>() { "https://linkmanagertests.com/buttons.css", "https://linkmanagertests.com/home", "https://linkmanagertests.com/img/hello/hello.png", "https://linkmanagertests.com/img/hello/hello.jpg", "https://linkmanagertests.com/img/hello/hello.ico", "https://linkmanagertests.com/scripts/script.js" }; bool[] expected = { false, false, false, false, false, false }; HtmlLinkManager linkManager = new HtmlLinkManager(); var actual = links.Select(link => linkManager.IsLinkFormatForbidden(link)).ToList(); CollectionAssert.AreEqual(expected, actual); }
public void GetPageLinks_PassLayoutWithLinks_PngAndCSSLinksRestricted_ReturnLinkCollectionWithoutRestricted() { var expectedLinks = new List <string>() { "https://linkmanagertests.com/home", "https://linkmanagertests.com/img/hello/hello.jpg", "https://linkmanagertests.com/img/hello/hello.ico", "https://linkmanagertests.com/scripts/script.js" }; var restrictedFormats = new List <string>() { ".png", ".css" }; HtmlLinkManager linkManager = new HtmlLinkManager(restrictedFormats); var actualLinks = linkManager.GetPageLinks(pageWithLinks).ToList(); CollectionAssert.AreEqual(expectedLinks, actualLinks); }
static void Main(string[] args) { const string defaultPath = @"D:\CDP\.net_tasks\Week_10\Downloads\"; Uri[] resources = { new Uri("https://www.epam.com/"), new Uri("https://www.epam.com/what-we-do/"), new Uri("https://habr.com/company/goto/blog/345978/"), }; Console.ForegroundColor = ConsoleColor.DarkYellow; HtmlLinkManager linkManager = new HtmlLinkManager(domainSwitchParameter: DomainSwitchParameter.WithoutRestrictions); FileSystemWebsiteSave resourceRecorder = new FileSystemWebsiteSave(defaultPath + "test_1\\"); WebsiteDownloader downloader = new WebsiteDownloader(linkManager, resourceRecorder); downloader = AddHandlers(downloader); downloader.DownloadWebResourceAsync(resources[0], 0).Wait(); Console.ForegroundColor = ConsoleColor.DarkCyan; linkManager = new HtmlLinkManager(domainSwitchParameter: DomainSwitchParameter.BelowSourceUrlPath); resourceRecorder.DestinationPath = defaultPath + "test_2\\"; downloader = new WebsiteDownloader(linkManager, resourceRecorder); downloader = AddHandlers(downloader); downloader.DownloadWebResourceAsync(resources[1], 1).Wait(); Console.ForegroundColor = ConsoleColor.DarkGreen; string[] excludedFormats = { ".jpg" }; resourceRecorder.DestinationPath = defaultPath + "test_3\\"; linkManager = new HtmlLinkManager(excludedFormats, DomainSwitchParameter.CurrentDomain); downloader = new WebsiteDownloader(linkManager, resourceRecorder); downloader = AddHandlers(downloader); downloader.DownloadWebResourceAsync(resources[2], 0).Wait(); Console.ReadLine(); }
public void IsLinkDomainForbidden_CurrentDomainParam_ReturnFilteredLinks() { var links = new List <Uri>() { new Uri("https://linkmanagertests.com/buttons.css"), new Uri("https://linkmanagertests.com/home"), new Uri("https://linkmanagertests.com/img/hello/hello.png"), new Uri("https://habr.com"), new Uri("https://epam.com"), new Uri("https://linkmanagertests.com/scripts/script.js") }; var currentDomain = new Uri("https://linkmanagertests.com"); bool[] expected = { false, false, false, true, true, false }; DomainSwitchParameter domainSwitchParameter = DomainSwitchParameter.CurrentDomain; HtmlLinkManager linkManager = new HtmlLinkManager(domainSwitchParameter: domainSwitchParameter); var actual = links.Select(link => linkManager.IsLinkDomainForbidden(currentDomain, link)).ToList(); CollectionAssert.AreEqual(expected, actual); }
public void IsLinkDomainForbidden_BelowSourceUrlPath_ReturnFilteredLinks() { var links = new List <Uri>() { new Uri("https://linkmanagertests.com/users/index.html"), new Uri("https://linkmanagertests.com/home"), new Uri("https://linkmanagertests.com/"),//should it pass? new Uri("https://habr.com"), new Uri("https://epam.com"), new Uri("https://linkmanagertests.com/scripts/script.js") }; var baseUrl = new Uri("https://linkmanagertests.com/users"); bool[] expected = { false, true, true, true, true, true }; DomainSwitchParameter domainSwitchParameter = DomainSwitchParameter.BelowSourceUrlPath; HtmlLinkManager linkManager = new HtmlLinkManager(domainSwitchParameter: domainSwitchParameter); var result = links.Select(link => linkManager.IsLinkDomainForbidden(baseUrl, link)).ToList(); CollectionAssert.AreEqual(expected, result); }
public void IsLinkFormatForbidden_HasForbiddenFormats_ReturnFilteredSequence() { var links = new List <string>() { "https://linkmanagertests.com/index.css", "https://linkmanagertests.com/buttons.css", "https://linkmanagertests.com/home", "https://linkmanagertests.com/img/hello/hello.png", "https://linkmanagertests.com/img/hello/hello.jpg", "https://linkmanagertests.com/img/hello/hello.ico", "https://linkmanagertests.com/scripts/script.js" }; bool[] expected = { false, false, false, true, false, true, true }; IEnumerable <string> forbiddenFormats = new List <string>() { ".png", ".ico", ".js" }; HtmlLinkManager linkManager = new HtmlLinkManager(forbiddenFormats); var actual = links.Select(link => linkManager.IsLinkFormatForbidden(link)).ToList(); CollectionAssert.AreEqual(expected, actual); }
public void GetPageLinks_PassNull_ArgumentNullExseption() { HtmlLinkManager linkManager = new HtmlLinkManager(); Assert.ThrowsException <ArgumentNullException>(() => linkManager.GetPageLinks(null)); }