diff --git a/src/Tableau.Migration.App.GUI/Constants.cs b/src/Tableau.Migration.App.GUI/Constants.cs index 3069a24..5c0809c 100644 --- a/src/Tableau.Migration.App.GUI/Constants.cs +++ b/src/Tableau.Migration.App.GUI/Constants.cs @@ -30,7 +30,7 @@ public static class Constants /// /// The App version number. /// - public const string Version = "v1.0.2"; + public const string Version = "v1.0.3"; /// /// The App name with version. diff --git a/src/Tableau.Migration.App.GUI/ViewModels/UriDetailsViewModel.cs b/src/Tableau.Migration.App.GUI/ViewModels/UriDetailsViewModel.cs index 1b368e6..910b301 100644 --- a/src/Tableau.Migration.App.GUI/ViewModels/UriDetailsViewModel.cs +++ b/src/Tableau.Migration.App.GUI/ViewModels/UriDetailsViewModel.cs @@ -99,7 +99,7 @@ private string ExtractBaseUri(string uri) { if (Uri.TryCreate(uri, UriKind.Absolute, out var parsedUri)) { - return $"{parsedUri.Scheme}://{parsedUri.Host}/"; + return $"{parsedUri.Scheme}://{parsedUri.Authority}/"; } return string.Empty; @@ -116,8 +116,8 @@ private string ExtractSiteContent(string uri) for (int i = 0; i < fragmentSegments.Length; i++) { if (fragmentSegments[i].Equals( - "site", - StringComparison.OrdinalIgnoreCase) + "site", + StringComparison.OrdinalIgnoreCase) && i + 1 < fragmentSegments.Length) { return fragmentSegments[i + 1]; diff --git a/tests/Tableau.Migration.App.GUI.Tests/ViewModels/UriDetailsViewModel.cs b/tests/Tableau.Migration.App.GUI.Tests/ViewModels/UriDetailsViewModel.cs index db72206..7423632 100644 --- a/tests/Tableau.Migration.App.GUI.Tests/ViewModels/UriDetailsViewModel.cs +++ b/tests/Tableau.Migration.App.GUI.Tests/ViewModels/UriDetailsViewModel.cs @@ -36,6 +36,18 @@ public void UriFull_SetValidUri_UpdatesUriBaseAndSiteContent() Assert.Equal("mysite", viewModel.SiteContent); } + [AvaloniaFact] + public void UriFull_SetValidUri_PreservesPort() + { + var viewModel = new UriDetailsViewModel(); + var testUri = "https://example.com:1234/#/site/mysite"; + + viewModel.UriFull = testUri; + + Assert.Equal("https://example.com:1234/", viewModel.UriBase); + Assert.Equal("mysite", viewModel.SiteContent); + } + [AvaloniaFact] public void UriFull_SetInvalidUri_AddsUriFormatError() {