diff --git a/ICD.Common.Utils.Tests/IcdUriBuilderTest.cs b/ICD.Common.Utils.Tests/IcdUriBuilderTest.cs index 2c49ca3..16ebdeb 100644 --- a/ICD.Common.Utils.Tests/IcdUriBuilderTest.cs +++ b/ICD.Common.Utils.Tests/IcdUriBuilderTest.cs @@ -16,43 +16,43 @@ namespace ICD.Common.Utils.Tests [TestCase("test")] public void HostTest(string host) { - Assert.AreEqual(host, new IcdUriBuilder { Host = host }.Host); + Assert.AreEqual(host, new IcdUriBuilder {Host = host}.Host); } [TestCase("test")] public void PasswordTest(string fragment) { - Assert.AreEqual(fragment, new IcdUriBuilder { Password = fragment }.Password); + Assert.AreEqual(fragment, new IcdUriBuilder {Password = fragment}.Password); } [TestCase("test")] public void PathTest(string fragment) { - Assert.AreEqual(fragment, new IcdUriBuilder { Path = fragment }.Path); + Assert.AreEqual(fragment, new IcdUriBuilder {Path = fragment}.Path); } [TestCase((ushort)80)] public void PortTest(ushort port) { - Assert.AreEqual(port, new IcdUriBuilder { Port = port }.Port); + Assert.AreEqual(port, new IcdUriBuilder {Port = port}.Port); } [TestCase("test")] public void QueryTest(string query) { - Assert.AreEqual(query, new IcdUriBuilder { Query = query }.Query); + Assert.AreEqual(query, new IcdUriBuilder {Query = query}.Query); } [TestCase("test")] public void SchemeTest(string scheme) { - Assert.AreEqual(scheme, new IcdUriBuilder { Scheme = scheme }.Scheme); + Assert.AreEqual(scheme, new IcdUriBuilder {Scheme = scheme}.Scheme); } [TestCase("test")] public void UserNameTest(string userName) { - Assert.AreEqual(userName, new IcdUriBuilder { UserName = userName }.UserName); + Assert.AreEqual(userName, new IcdUriBuilder {UserName = userName}.UserName); } [Test] @@ -63,19 +63,23 @@ namespace ICD.Common.Utils.Tests #endregion - [TestCase("http://localhost/", null, null, null, (ushort)0, null, null, null)] - [TestCase("http://localhost:80/", null, null, null, (ushort)80, null, null, null)] - [TestCase("http://username@localhost/", null, null, null, (ushort)0, null, null, "username")] - [TestCase("http://localhost/", null, null, "password", (ushort)0, null, null, null)] - [TestCase("https://localhost/", null, null, null, (ushort)0, null, "https", null)] - public void ToStringTest(string expected, string fragment, string address, string password, ushort port, string query, - string scheme, string userName) + [TestCase("http://localhost/", null, null, null, null, (ushort)0, null, null, null)] + [TestCase("http://localhost:80/", null, null, null, null, (ushort)80, null, null, null)] + [TestCase("http://username@localhost/", null, null, null, null, (ushort)0, null, null, "username")] + [TestCase("http://localhost/", null, null, "password", null, (ushort)0, null, null, null)] + [TestCase("https://localhost/", null, null, null, null, (ushort)0, null, "https", null)] + [TestCase("http://localhost/test", null, null, null, "test", (ushort)0, null, null, null)] + [TestCase("http://localhost/test", null, null, null, "/test", (ushort)0, null, null, null)] + [TestCase("http://localhost//test", null, null, null, "//test", (ushort)0, null, null, null)] + public void ToStringTest(string expected, string fragment, string address, string password, string path, ushort port, + string query, string scheme, string userName) { IcdUriBuilder builder = new IcdUriBuilder { Fragment = fragment, Host = address, Password = password, + Path = path, Port = port, Query = query, Scheme = scheme, diff --git a/ICD.Common.Utils/IcdUriBuilder.cs b/ICD.Common.Utils/IcdUriBuilder.cs index aacfc9d..b58642a 100644 --- a/ICD.Common.Utils/IcdUriBuilder.cs +++ b/ICD.Common.Utils/IcdUriBuilder.cs @@ -100,7 +100,8 @@ namespace ICD.Common.Utils } // Path - builder.Append('/'); + if (string.IsNullOrEmpty(Path) || !Path.StartsWith("/")) + builder.Append('/'); builder.Append(Path); // Query