From 9dc6c4a466d746ca13f07a1f6f19c450284a46d5 Mon Sep 17 00:00:00 2001 From: Peter Dolkens Date: Wed, 5 Jul 2017 11:57:23 +0100 Subject: [PATCH] Add support for WithoutDefaultPort as WithPort doesn't allow "-1" to be sent to hide DefaultPorts --- .../ExtensionTests.cs | 16 ++++++++++++++++ .../TerribleDevUriExtensions.cs | 11 +++++++++++ 2 files changed, 27 insertions(+) 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 ///