DarabonbaUnitTests/URLTest.cs (44 lines of code) (raw):
using Darabonba;
using Xunit;
namespace DaraUnitTests
{
public class URLTest
{
[Fact]
public void Test_Parse()
{
string url = "https://sdk:test@ecs.aliyuncs.com:443/sdk/?api&ok=test#sddd";
URL ret = URL.Parse(url);
Assert.Equal("/sdk/?api&ok=test", ret.Path());
Assert.Equal("/sdk/", ret.Pathname());
Assert.Equal("https", ret.Protocol());
Assert.Equal("ecs.aliyuncs.com", ret.Hostname());
Assert.Equal("ecs.aliyuncs.com", ret.Host());
Assert.Equal("443", ret.Port());
Assert.Equal("sddd", ret.Hash());
Assert.Equal("api&ok=test", ret.Search());
Assert.Equal("https://sdk:test@ecs.aliyuncs.com/sdk/?api&ok=test#sddd", ret.Href());
Assert.Equal("sdk:test", ret.Auth());
}
[Fact]
public void Test_UrlEncode()
{
string result = URL.UrlEncode("https://www.baidu.com/");
Assert.Equal("https%3A%2F%2Fwww.baidu.com%2F", result);
}
[Fact]
public void Test_PercentEncode()
{
Assert.Null(URL.PercentEncode(null));
Assert.Equal("test%3D", URL.PercentEncode("test="));
string result = URL.PercentEncode("https://www.bai+*~du.com/");
Assert.Equal("https%3A%2F%2Fwww.bai%2B%2A~du.com%2F", result);
}
[Fact]
public void Test_PathEncode()
{
string result = URL.PathEncode("/work_space/DARABONBA/GIT/darabonba-util/ts");
Assert.Equal("/work_space/DARABONBA/GIT/darabonba-util/ts", result);
}
}
}