using Util.Helpers; using Xunit; namespace Util.Tests.Helpers; /// /// Url测试 /// public class UrlTest { /// /// 测试连接路径 /// [Theory] [InlineData( null, null, "" )] [InlineData( "", "", "" )] [InlineData( "a", "", "a" )] [InlineData( "", "a", "a" )] [InlineData( "a", "b", "a/b" )] [InlineData( "a/", "b", "a/b" )] [InlineData( "a", "/b", "a/b" )] [InlineData( "a", "\\b", "a/b" )] [InlineData( "/a", "b", "/a/b" )] [InlineData( "a", "b/", "a/b/" )] [InlineData( "/a/", "/b/", "/a/b/" )] public void TestJoinPath( string path1, string path2, string result ) { Assert.Equal( result, Url.JoinPath( path1, path2 ) ); } /// /// 测试连接路径 - 上级路径带./ /// [Fact] public void TestJoinPath_2() { Assert.Equal( "a/b", Url.JoinPath( "./a", "b" ) ); } /// /// 测试连接路径 - 下级路径带./ /// [Fact] public void TestJoinPath_3() { Assert.Equal( "a/b", Url.JoinPath( "a", "./b" ) ); } /// /// 测试连接路径 - 下级路径带../ /// [Fact] public void TestJoinPath_4() { Assert.Equal( "a/c", Url.JoinPath( "a/b", "../c" ) ); } /// /// 测试连接路径 - http打头 /// [Fact] public void TestJoinPath_5() { Assert.Equal( "http://a.com/a/c", Url.JoinPath( "http://a.com", "a/b", "../c" ) ); } /// /// 测试连接路径 - https打头 /// [Fact] public void TestJoinPath_6() { Assert.Equal( "https://a.com/a/c", Url.JoinPath( "https://a.com/", "a/b/", "../c" ) ); } /// /// 测试连接路径 - https打头,带..路径 /// [Fact] public void TestJoinPath_7() { Assert.Equal( "https://a.com/a/c/D/F/g", Url.JoinPath( "Https://a.com/a/b/", "../c/D/e/", "../F/g" ) ); } /// /// 测试连接路径 - https打头,带..路径 /// [Fact] public void TestJoinPath_8() { Assert.Equal( "https://a.com/view/a", Url.JoinPath( "https://a.com", "view", "a" ) ); } }