Beispiel #1
0
 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);
 }
Beispiel #2
0
 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);
        }
Beispiel #4
0
 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);
 }
Beispiel #5
0
 public void SetBaseForRelativePaths_NoHead_Throw()
 {
     var dom = new HtmlDom(
                   @"<html></html>");
     Assert.Throws<ArgumentNullException>(() => dom.SetBaseForRelativePaths("theBase"));
 }