diff --git a/src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs b/src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs
index 238fbd2..6b2e1a1 100644
--- a/src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs
+++ b/src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs
@@ -78,6 +78,22 @@ namespace FluentUriBuilder.Tests
Assert.Equal(url.Port, 22);
}
+ [Fact]
+ public void WithoutDefaultPort()
+ {
+ var url = new UriBuilder("http://awesome.com:80")
+ .WithoutDefaultPort();
+ Assert.Equal("http://awesome.com", url.Uri.ToString());
+
+ url = new UriBuilder("http://awesome.com:443")
+ .WithoutDefaultPort();
+ Assert.Equal("http://awesome.com:443", url.Uri.ToString());
+
+ url = new UriBuilder("https://awesome.com:443")
+ .WithoutDefaultPort();
+ Assert.Equal("https://awesome.com", url.Uri.ToString());
+ }
+
[Fact]
public void WithHttps()
{
diff --git a/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs b/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs
index 357e8b7..06641aa 100644
--- a/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs
+++ b/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs
@@ -81,6 +81,17 @@ namespace System
return bld;
}
+ ///
+ /// Removes the port number for default ports
+ ///
+ ///
+ ///
+ public static UriBuilder WithoutDefaultPort(this UriBuilder bld)
+ {
+ if (bld.Uri.IsDefaultPort) bld.Port = -1;
+ return bld;
+ }
+
///
/// appends a path segment to the path. Can be called multiple times to append multiple segments
///