mirror of https://github.com/abpframework/abp.git
committed by
GitHub
2 changed files with 96 additions and 1 deletions
@ -0,0 +1,95 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.Extensions.DependencyInjection; |
||||
|
using Shouldly; |
||||
|
using Volo.Abp.MultiTenancy; |
||||
|
using Volo.Abp.Testing; |
||||
|
using Volo.Abp.UI.Navigation.Urls; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.Abp.UI.Navigation; |
||||
|
|
||||
|
public class AppUrlProvider_Tests : AbpIntegratedTest<AbpUiNavigationTestModule> |
||||
|
{ |
||||
|
private readonly IAppUrlProvider _appUrlProvider; |
||||
|
private readonly ICurrentTenant _currentTenant; |
||||
|
|
||||
|
public AppUrlProvider_Tests() |
||||
|
{ |
||||
|
_appUrlProvider = ServiceProvider.GetRequiredService<AppUrlProvider>(); |
||||
|
_currentTenant = ServiceProvider.GetRequiredService<ICurrentTenant>(); |
||||
|
} |
||||
|
|
||||
|
protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) |
||||
|
{ |
||||
|
options.UseAutofac(); |
||||
|
} |
||||
|
|
||||
|
protected override void AfterAddApplication(IServiceCollection services) |
||||
|
{ |
||||
|
services.Configure<AppUrlOptions>(options => |
||||
|
{ |
||||
|
options.Applications["MVC"].RootUrl = "https://{{tenantName}}.abp.io"; |
||||
|
options.Applications["MVC"].Urls["PasswordReset"] = "account/reset-password"; |
||||
|
options.RedirectAllowedUrls.AddRange(new List<string>() |
||||
|
{ |
||||
|
"https://wwww.volosoft.com", |
||||
|
"https://wwww.aspnetzero.com" |
||||
|
}); |
||||
|
|
||||
|
options.Applications["BLAZOR"].RootUrl = "https://{{tenantId}}.abp.io"; |
||||
|
options.Applications["BLAZOR"].Urls["PasswordReset"] = "account/reset-password"; |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetUrlAsync() |
||||
|
{ |
||||
|
using (_currentTenant.Change(null)) |
||||
|
{ |
||||
|
var url = await _appUrlProvider.GetUrlAsync("MVC"); |
||||
|
url.ShouldBe("https://abp.io"); |
||||
|
|
||||
|
url = await _appUrlProvider.GetUrlAsync("MVC", "PasswordReset"); |
||||
|
url.ShouldBe("https://abp.io/account/reset-password"); |
||||
|
} |
||||
|
|
||||
|
using (_currentTenant.Change(Guid.NewGuid(), "community")) |
||||
|
{ |
||||
|
var url = await _appUrlProvider.GetUrlAsync("MVC"); |
||||
|
url.ShouldBe("https://community.abp.io"); |
||||
|
|
||||
|
url = await _appUrlProvider.GetUrlAsync("MVC", "PasswordReset"); |
||||
|
url.ShouldBe("https://community.abp.io/account/reset-password"); |
||||
|
} |
||||
|
|
||||
|
var tenantId = Guid.NewGuid(); |
||||
|
using (_currentTenant.Change(tenantId)) |
||||
|
{ |
||||
|
var url = await _appUrlProvider.GetUrlAsync("BLAZOR"); |
||||
|
url.ShouldBe($"https://{tenantId}.abp.io"); |
||||
|
|
||||
|
url = await _appUrlProvider.GetUrlAsync("BLAZOR", "PasswordReset"); |
||||
|
url.ShouldBe($"https://{tenantId}.abp.io/account/reset-password"); |
||||
|
} |
||||
|
|
||||
|
await Assert.ThrowsAsync<AbpException>(async () => |
||||
|
{ |
||||
|
await _appUrlProvider.GetUrlAsync("ANGULAR"); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetUrlOrNullAsync() |
||||
|
{ |
||||
|
(await _appUrlProvider.GetUrlOrNullAsync("ANGULAR")).ShouldBeNull(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void IsRedirectAllowedUrl() |
||||
|
{ |
||||
|
_appUrlProvider.IsRedirectAllowedUrl("https://community.abp.io").ShouldBeFalse(); |
||||
|
_appUrlProvider.IsRedirectAllowedUrl("https://wwww.volosoft.com").ShouldBeTrue(); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue