public void UriUtil_Combine_Test() { var http = "http:/test.com"; var rPath = "test/test.html"; Assert.Equal(http + "/" + rPath, UriUtil.Combine(http, rPath)); if (UriUtil.IsWin()) { var root = @"\test\test"; var rPath2 = @"\test\test.html"; Assert.Equal("/test/test/test/test.html", UriUtil.Combine(root, rPath2)); var rPath3 = @"..\test\test.html"; var cPath = UriUtil.Combine(root, rPath3); var pRoot = Path.GetPathRoot(Path.GetFullPath("/")); Assert.Equal($@"{pRoot}test\test\test.html", Path.GetFullPath(cPath)); } else { var root = "/test/test"; var rPath2 = "/test/test.html"; Assert.Equal("/test/test/test/test.html", UriUtil.Combine(root, rPath2)); var rPath3 = "../test/test.html"; var cPath = UriUtil.Combine(root, rPath3); var pRoot = Path.GetPathRoot(Path.GetFullPath("/")); Assert.Equal($@"{pRoot}test/test/test.html", Path.GetFullPath(cPath)); } }
public void UriUtil_ValidUri_Test() { var relativeUrl = "test/1.html"; Assert.True(UriUtil.IsValidUri(relativeUrl)); var absoluteUrl = "/test/1.html"; Assert.True(UriUtil.IsValidUri(absoluteUrl)); Assert.True(UriUtil.IsValidUri(dataUrl)); var httpUrl = "http://test.com/1"; Assert.True(UriUtil.IsValidUri(httpUrl)); if (UriUtil.IsWin()) { var windowsUrl = @"c:\1\2\"; Assert.True(UriUtil.IsValidUri(windowsUrl)); var windowsUrl2 = @"\1\2\"; Assert.True(UriUtil.IsValidUri(windowsUrl2)); } else { var unixUrl = "/1/2/"; Assert.True(UriUtil.IsValidUri(unixUrl)); } var fileUrl = "file:///d:/1/2"; Assert.True(UriUtil.IsValidUri(fileUrl)); }
public void FileUri_Test() { var url = "/Users/Test/test.txt"; if (UriUtil.IsWin()) // for windows { url = "c:" + url; } var uri = new Uri(url, UriKind.Absolute); Assert.True(uri.IsFile); Assert.Equal("file", uri.Scheme); }
public void UriUtil_Normalize_Test() { var http = "http://test.com"; Assert.Equal(http, UriUtil.Normalize(http)); var https = "https://test.com"; Assert.Equal(https, UriUtil.Normalize(https)); var ftp = "ftp://test.com"; Assert.Equal(ftp, UriUtil.Normalize(ftp)); if (UriUtil.IsWin()) { var windowsUrl = @"c:\1\2"; //@"c:\folder\myfile.txt"; var nUrl = UriUtil.Normalize(windowsUrl); Assert.Equal("file:///c:/1/2", nUrl); } else { var unixUrl = "/1/2/"; var nUrl = UriUtil.Normalize(unixUrl); Assert.Equal("file:///1/2", nUrl); } }