public void SetBaseForRelativePaths_NoExistingBase_Adds() { var dom = new HtmlDom( @"<html><head/></html>"); dom.SetBaseForRelativePaths("theBase"); AssertThatXmlIn.Dom(dom.RawDom).HasSpecifiedNumberOfMatchesForXpath("html/head/base[@href='theBase']", 1); }
public void SetBaseForRelativePaths_HasExistingBase_Replaces() { var dom = new HtmlDom( @"<html><head><base href='original'/></head></html>"); AssertThatXmlIn.Dom(dom.RawDom).HasSpecifiedNumberOfMatchesForXpath("html/head/base[@href='original']", 1); dom.SetBaseForRelativePaths("new"); AssertThatXmlIn.Dom(dom.RawDom).HasSpecifiedNumberOfMatchesForXpath("html/head/base[@href='original']", 0); AssertThatXmlIn.Dom(dom.RawDom).HasSpecifiedNumberOfMatchesForXpath("html/head/base[@href='new']", 1); }
public static void SetBaseForRelativePaths(HtmlDom dom, string folderPath, bool pointAtEmbeddedServer) { string path = ""; if (!string.IsNullOrEmpty(folderPath)) { if (pointAtEmbeddedServer && Settings.Default.ImageHandler == "http" && ImageServer.IsAbleToUsePort) { //this is only used by relative paths, and only img src's are left relative. //we are redirecting through our build-in httplistener in order to shrink //big images before giving them to gecko which has trouble with really hi-res ones var uri = folderPath + Path.DirectorySeparatorChar; uri = uri.Replace(":", "%3A"); uri = uri.Replace('\\', '/'); uri = ImageServer.PathEndingInSlash + uri; path = uri; } else { path = "file://" + folderPath + Path.DirectorySeparatorChar; } } dom.SetBaseForRelativePaths(path); }
public static void SetBaseForRelativePaths(HtmlDom dom, string folderPath, bool pointAtEmbeddedServer) { string path = ""; if (!string.IsNullOrEmpty(folderPath)) { if (pointAtEmbeddedServer && Settings.Default.ImageHandler == "http" && ImageServer.IsAbleToUsePort) { //this is only used by relative paths, and only img src's are left relative. //we are redirecting through our build-in httplistener in order to shrink //big images before giving them to gecko which has trouble with really hi-res ones var uri = folderPath + Path.DirectorySeparatorChar; uri = uri.Replace(":", "%3A"); uri = uri.Replace('\\', '/'); uri = ImageServer.GetPathEndingInSlash() + uri; path = uri; } else { path = "file://" + folderPath + Path.DirectorySeparatorChar; } } dom.SetBaseForRelativePaths(path); }
public void SetBaseForRelativePaths_NoHead_Throw() { var dom = new HtmlDom( @"<html></html>"); Assert.Throws<ArgumentNullException>(() => dom.SetBaseForRelativePaths("theBase")); }