Merge pull request #336 from hishamco/navigate-url

Simplify NavigateUrl using UriBuilder
This commit is contained in:
Shaun Walker 2020-04-07 10:53:52 -04:00 committed by GitHub
commit 532a33ff47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 21 deletions

View File

@ -14,30 +14,18 @@ namespace Oqtane.Shared
var assemblyName = assemblyFullName.Substring(0, assemblyFullName.IndexOf(",", StringComparison.Ordinal));
return $"{type.Namespace}, {assemblyName}";
}
public static string NavigateUrl(string alias, string path, string parameters)
{
string url = "";
if (alias != "")
var uriBuilder = new UriBuilder
{
url += alias + "/";
}
if (path != "" && path != "/")
{
url += path + "/";
}
if (url.EndsWith("/"))
{
url = url.Substring(0, url.Length - 1);
}
if (!string.IsNullOrEmpty(parameters))
{
url += "?" + parameters;
}
if (!url.StartsWith("/"))
{
url = "/" + url;
}
return url;
Path = !string.IsNullOrEmpty(alias)
? $"{alias}/{path}"
: $"{path}",
Query = parameters
};
return uriBuilder.Uri.PathAndQuery;
}
public static string EditUrl(string alias, string path, int moduleid, string action, string parameters)

View File

@ -0,0 +1,31 @@
using Oqtane.Shared;
using Xunit;
namespace Oqtane.Test.Oqtane.Shared.Tests
{
public class UtilitiesTests
{
[Theory]
[InlineData("contoso", "login", "returnUrl=/admin", "/contoso/login?returnUrl=/admin")]
[InlineData("contoso", "admin", "", "/contoso/admin")]
[InlineData("contoso", "", "pageId=4", "/contoso?pageId=4")]
[InlineData("contoso", "", "pageId=4&moduleId=10", "/contoso?pageId=4&moduleId=10")]
[InlineData("contoso", "", "", "/contoso/")]
[InlineData("", "login", "returnUrl=/admin", "/login?returnUrl=/admin")]
[InlineData("", "admin", "", "/admin")]
[InlineData("", "", "pageId=4", "?pageId=4")]
[InlineData("", "", "pageId=4&moduleId=10", "?pageId=4&moduleId=10")]
[InlineData("", "", "", "/")]
public void NavigateUrlTest(string alias, string path, string parameters, string expectedUrl)
{
// Arrange
var navigatedUrl = string.Empty;
// Act
navigatedUrl = Utilities.NavigateUrl(alias, path, parameters);
// Assert
Assert.Equal(expectedUrl, navigatedUrl);
}
}
}