Merge branch 'release/2.1' into dev
This commit is contained in:
commit
a48b32fd08
|
|
@ -1,14 +1,17 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Net;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.Extensions.Logging.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
{
|
{
|
||||||
public class AuthorizationTests : IClassFixture<ServerFactory>
|
public class AuthorizationTests : LoggedTest, IClassFixture<ServerFactory>
|
||||||
{
|
{
|
||||||
public AuthorizationTests(ServerFactory serverFactory)
|
public AuthorizationTests(ServerFactory serverFactory, ITestOutputHelper output) : base(output)
|
||||||
{
|
{
|
||||||
ServerFactory = serverFactory;
|
ServerFactory = serverFactory;
|
||||||
}
|
}
|
||||||
|
|
@ -36,9 +39,11 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(AuthorizedPages))]
|
[MemberData(nameof(AuthorizedPages))]
|
||||||
public async Task AnonymousUserCantAccessAuthorizedPages(string url)
|
public async Task AnonymousUserCantAccessAuthorizedPages(string url)
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory, $"{nameof(AnonymousUserCantAccessAuthorizedPages)}_{WebUtility.UrlEncode(url)}"))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var client = ServerFactory.CreateDefaultClient();
|
var client = ServerFactory.CreateDefaultClient(loggerFactory);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await client.GetAsync(url);
|
var response = await client.GetAsync(url);
|
||||||
|
|
@ -47,6 +52,7 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
var location = ResponseAssert.IsRedirect(response);
|
var location = ResponseAssert.IsRedirect(response);
|
||||||
Assert.StartsWith("/Identity/Account/Login?", location.PathAndQuery);
|
Assert.StartsWith("/Identity/Account/Login?", location.PathAndQuery);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// The routes commented below are not directly accessible by
|
// The routes commented below are not directly accessible by
|
||||||
// typing the URL in the browser. They have to be accessed as
|
// typing the URL in the browser. They have to be accessed as
|
||||||
|
|
@ -73,9 +79,11 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(RouteableAuthorizedPages))]
|
[MemberData(nameof(RouteableAuthorizedPages))]
|
||||||
public async Task AuthenticatedUserCanAccessAuthorizedPages(string url)
|
public async Task AuthenticatedUserCanAccessAuthorizedPages(string url)
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory, $"{nameof(AuthenticatedUserCanAccessAuthorizedPages)}_{WebUtility.UrlEncode(url)}"))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var client = ServerFactory.CreateDefaultClient();
|
var client = ServerFactory.CreateDefaultClient(loggerFactory);
|
||||||
await UserStories.RegisterNewUserAsync(client);
|
await UserStories.RegisterNewUserAsync(client);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -84,6 +92,7 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Assert
|
// Assert
|
||||||
await ResponseAssert.IsHtmlDocumentAsync(response);
|
await ResponseAssert.IsHtmlDocumentAsync(response);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// The routes commented below are not directly accessible by
|
// The routes commented below are not directly accessible by
|
||||||
// typing the URL in the browser. They have to be accessed as
|
// typing the URL in the browser. They have to be accessed as
|
||||||
|
|
@ -106,9 +115,11 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(UnauthorizedPages))]
|
[MemberData(nameof(UnauthorizedPages))]
|
||||||
public async Task AnonymousUserCanAccessNotAuthorizedPages(string url)
|
public async Task AnonymousUserCanAccessNotAuthorizedPages(string url)
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory, $"{nameof(AnonymousUserCanAccessNotAuthorizedPages)}_{WebUtility.UrlEncode(url)}"))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var client = ServerFactory.CreateDefaultClient();
|
var client = ServerFactory.CreateDefaultClient(loggerFactory);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await client.GetAsync(url);
|
var response = await client.GetAsync(url);
|
||||||
|
|
@ -116,6 +127,7 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Assert
|
// Assert
|
||||||
await ResponseAssert.IsHtmlDocumentAsync(response);
|
await ResponseAssert.IsHtmlDocumentAsync(response);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static TheoryData<string> UnauthorizedPagesAllowAnonymous =>
|
public static TheoryData<string> UnauthorizedPagesAllowAnonymous =>
|
||||||
new TheoryData<string>
|
new TheoryData<string>
|
||||||
|
|
@ -130,9 +142,11 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(UnauthorizedPagesAllowAnonymous))]
|
[MemberData(nameof(UnauthorizedPagesAllowAnonymous))]
|
||||||
public async Task AnonymousUserAllowedAccessToPages_WithGlobalAuthorizationFilter(string url)
|
public async Task AnonymousUserAllowedAccessToPages_WithGlobalAuthorizationFilter(string url)
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory, $"{nameof(AnonymousUserAllowedAccessToPages_WithGlobalAuthorizationFilter)}_{WebUtility.UrlEncode(url)}"))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureServices(services => services.SetupGlobalAuthorizeFilter()));
|
builder.ConfigureServices(services => services.SetupGlobalAuthorizeFilter()));
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
||||||
|
|
@ -144,3 +158,4 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ using Identity.DefaultUI.WebSite;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.TestHost;
|
using Microsoft.AspNetCore.TestHost;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
{
|
{
|
||||||
|
|
@ -19,12 +20,14 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
private IList<IDisposable> _disposableServers = new List<IDisposable>();
|
private IList<IDisposable> _disposableServers = new List<IDisposable>();
|
||||||
|
|
||||||
public TestServer CreateServer(
|
public TestServer CreateServer(
|
||||||
|
ILoggerFactory loggerFactory,
|
||||||
Action<IWebHostBuilder> configureBuilder,
|
Action<IWebHostBuilder> configureBuilder,
|
||||||
[CallerMemberName] string isolationKey = "")
|
[CallerMemberName] string isolationKey = "")
|
||||||
{
|
{
|
||||||
var builder = WebHostBuilderFactory
|
var builder = WebHostBuilderFactory
|
||||||
.CreateFromTypesAssemblyEntryPoint<Startup>(new string[] { })
|
.CreateFromTypesAssemblyEntryPoint<Startup>(new string[] { })
|
||||||
.UseSolutionRelativeContentRoot(Path.Combine("test", "WebSites", "Identity.DefaultUI.WebSite"))
|
.UseSolutionRelativeContentRoot(Path.Combine("test", "WebSites", "Identity.DefaultUI.WebSite"))
|
||||||
|
.ConfigureServices(collection => collection.AddSingleton(loggerFactory))
|
||||||
.ConfigureServices(sc => sc.SetupTestDatabase(isolationKey)
|
.ConfigureServices(sc => sc.SetupTestDatabase(isolationKey)
|
||||||
.AddMvc()
|
.AddMvc()
|
||||||
// Mark the cookie as essential for right now, as Identity uses it on
|
// Mark the cookie as essential for right now, as Identity uses it on
|
||||||
|
|
@ -38,8 +41,8 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
return server;
|
return server;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TestServer CreateDefaultServer([CallerMemberName] string isolationKey = "") =>
|
public TestServer CreateDefaultServer(ILoggerFactory loggerFactory, [CallerMemberName] string isolationKey = "") =>
|
||||||
CreateServer(b => { }, isolationKey);
|
CreateServer(loggerFactory, b => { }, isolationKey);
|
||||||
|
|
||||||
public HttpClient CreateDefaultClient(TestServer server)
|
public HttpClient CreateDefaultClient(TestServer server)
|
||||||
{
|
{
|
||||||
|
|
@ -51,8 +54,8 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HttpClient CreateDefaultClient() =>
|
public HttpClient CreateDefaultClient(ILoggerFactory loggerFactory) =>
|
||||||
CreateDefaultClient(CreateDefaultServer());
|
CreateDefaultClient(CreateDefaultServer(loggerFactory));
|
||||||
|
|
||||||
protected virtual void Dispose(bool disposing)
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,16 @@ using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Identity.DefaultUI.WebSite;
|
using Identity.DefaultUI.WebSite;
|
||||||
|
using Microsoft.Extensions.Logging.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
using Xunit.Abstractions;
|
||||||
using Xunit.Sdk;
|
using Xunit.Sdk;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
{
|
{
|
||||||
public class LoginTests : IClassFixture<ServerFactory>
|
public class LoginTests : LoggedTest, IClassFixture<ServerFactory>
|
||||||
{
|
{
|
||||||
public LoginTests(ServerFactory serverFactory)
|
public LoginTests(ServerFactory serverFactory, ITestOutputHelper output) : base(output)
|
||||||
{
|
{
|
||||||
ServerFactory = serverFactory;
|
ServerFactory = serverFactory;
|
||||||
}
|
}
|
||||||
|
|
@ -21,9 +23,11 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanLogInWithAPreviouslyRegisteredUser()
|
public async Task CanLogInWithAPreviouslyRegisteredUser()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var server = ServerFactory.CreateDefaultServer();
|
var server = ServerFactory.CreateDefaultServer(loggerFactory);
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
var newClient = ServerFactory.CreateDefaultClient(server);
|
var newClient = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
||||||
|
|
@ -36,12 +40,15 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Use a new client to simulate a new browser session.
|
// Use a new client to simulate a new browser session.
|
||||||
await UserStories.LoginExistingUserAsync(newClient, userName, password);
|
await UserStories.LoginExistingUserAsync(newClient, userName, password);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanLogInWithTwoFactorAuthentication()
|
public async Task CanLogInWithTwoFactorAuthentication()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var server = ServerFactory.CreateDefaultServer();
|
var server = ServerFactory.CreateDefaultServer(loggerFactory);
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
var newClient = ServerFactory.CreateDefaultClient(server);
|
var newClient = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
||||||
|
|
@ -57,12 +64,15 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Use a new client to simulate a new browser session.
|
// Use a new client to simulate a new browser session.
|
||||||
await UserStories.LoginExistingUser2FaAsync(newClient, userName, password, twoFactorKey);
|
await UserStories.LoginExistingUser2FaAsync(newClient, userName, password, twoFactorKey);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanLogInWithTwoFactorAuthentication_WithGlobalAuthorizeFilter()
|
public async Task CanLogInWithTwoFactorAuthentication_WithGlobalAuthorizeFilter()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureServices(services => services.SetupGlobalAuthorizeFilter()));
|
builder.ConfigureServices(services => services.SetupGlobalAuthorizeFilter()));
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
var newClient = ServerFactory.CreateDefaultClient(server);
|
var newClient = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
@ -79,12 +89,15 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Use a new client to simulate a new browser session.
|
// Use a new client to simulate a new browser session.
|
||||||
await UserStories.LoginExistingUser2FaAsync(newClient, userName, password, twoFactorKey);
|
await UserStories.LoginExistingUser2FaAsync(newClient, userName, password, twoFactorKey);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanLogInWithRecoveryCode()
|
public async Task CanLogInWithRecoveryCode()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var server = ServerFactory.CreateDefaultServer();
|
var server = ServerFactory.CreateDefaultServer(loggerFactory);
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
var newClient = ServerFactory.CreateDefaultClient(server);
|
var newClient = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
||||||
|
|
@ -100,12 +113,15 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Use a new client to simulate a new browser session.
|
// Use a new client to simulate a new browser session.
|
||||||
await UserStories.LoginExistingUserRecoveryCodeAsync(newClient, userName, password, recoveryCode);
|
await UserStories.LoginExistingUserRecoveryCodeAsync(newClient, userName, password, recoveryCode);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanLogInWithRecoveryCode_WithGlobalAuthorizeFilter()
|
public async Task CanLogInWithRecoveryCode_WithGlobalAuthorizeFilter()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureServices(services => services.SetupGlobalAuthorizeFilter()));
|
builder.ConfigureServices(services => services.SetupGlobalAuthorizeFilter()));
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
var newClient = ServerFactory.CreateDefaultClient(server);
|
var newClient = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
@ -122,13 +138,16 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Use a new client to simulate a new browser session.
|
// Use a new client to simulate a new browser session.
|
||||||
await UserStories.LoginExistingUserRecoveryCodeAsync(newClient, userName, password, recoveryCode);
|
await UserStories.LoginExistingUserRecoveryCodeAsync(newClient, userName, password, recoveryCode);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CannotLogInWithoutRequiredEmailConfirmation()
|
public async Task CannotLogInWithoutRequiredEmailConfirmation()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var emailSender = new ContosoEmailSender();
|
var emailSender = new ContosoEmailSender();
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
{
|
{
|
||||||
builder.ConfigureServices(services => services
|
builder.ConfigureServices(services => services
|
||||||
.SetupTestEmailSender(emailSender)
|
.SetupTestEmailSender(emailSender)
|
||||||
|
|
@ -147,13 +166,16 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Use a new client to simulate a new browser session.
|
// Use a new client to simulate a new browser session.
|
||||||
await Assert.ThrowsAnyAsync<XunitException>(() => UserStories.LoginExistingUserAsync(newClient, userName, password));
|
await Assert.ThrowsAnyAsync<XunitException>(() => UserStories.LoginExistingUserAsync(newClient, userName, password));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanLogInAfterConfirmingEmail()
|
public async Task CanLogInAfterConfirmingEmail()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var emailSender = new ContosoEmailSender();
|
var emailSender = new ContosoEmailSender();
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
{
|
{
|
||||||
builder.ConfigureServices(services => services
|
builder.ConfigureServices(services => services
|
||||||
.SetupTestEmailSender(emailSender)
|
.SetupTestEmailSender(emailSender)
|
||||||
|
|
@ -175,12 +197,15 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
|
|
||||||
await UserStories.LoginExistingUserAsync(newClient, userName, password);
|
await UserStories.LoginExistingUserAsync(newClient, userName, password);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanLoginWithASocialLoginProvider()
|
public async Task CanLoginWithASocialLoginProvider()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureServices(services => services.SetupTestThirdPartyLogin()));
|
builder.ConfigureServices(services => services.SetupTestThirdPartyLogin()));
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
var newClient = ServerFactory.CreateDefaultClient(server);
|
var newClient = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
@ -193,13 +218,16 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
await UserStories.RegisterNewUserWithSocialLoginAsync(client, userName, email);
|
await UserStories.RegisterNewUserWithSocialLoginAsync(client, userName, email);
|
||||||
await UserStories.LoginWithSocialLoginAsync(newClient, userName);
|
await UserStories.LoginWithSocialLoginAsync(newClient, userName);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanLogInAfterResettingThePassword()
|
public async Task CanLogInAfterResettingThePassword()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var emailSender = new ContosoEmailSender();
|
var emailSender = new ContosoEmailSender();
|
||||||
var server = ServerFactory.CreateServer(b => b.ConfigureServices(s =>
|
var server = ServerFactory.CreateServer(loggerFactory, b => b.ConfigureServices(s =>
|
||||||
s.SetupTestEmailSender(emailSender)));
|
s.SetupTestEmailSender(emailSender)));
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
var resetPasswordClient = ServerFactory.CreateDefaultClient(server);
|
var resetPasswordClient = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
@ -222,3 +250,4 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,13 +8,15 @@ using System.Security.Claims;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Identity.DefaultUI.WebSite;
|
using Identity.DefaultUI.WebSite;
|
||||||
using Microsoft.AspNetCore.TestHost;
|
using Microsoft.AspNetCore.TestHost;
|
||||||
|
using Microsoft.Extensions.Logging.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
{
|
{
|
||||||
public class ManagementTests : IClassFixture<ServerFactory>
|
public class ManagementTests : LoggedTest, IClassFixture<ServerFactory>
|
||||||
{
|
{
|
||||||
public ManagementTests(ServerFactory serverFactory)
|
public ManagementTests(ServerFactory serverFactory, ITestOutputHelper output) : base(output)
|
||||||
{
|
{
|
||||||
ServerFactory = serverFactory;
|
ServerFactory = serverFactory;
|
||||||
}
|
}
|
||||||
|
|
@ -23,9 +25,11 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanEnableTwoFactorAuthentication()
|
public async Task CanEnableTwoFactorAuthentication()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var client = ServerFactory.CreateDefaultClient();
|
var client = ServerFactory.CreateDefaultClient(loggerFactory);
|
||||||
|
|
||||||
var userName = $"{Guid.NewGuid()}@example.com";
|
var userName = $"{Guid.NewGuid()}@example.com";
|
||||||
var password = $"!Test.Password1$";
|
var password = $"!Test.Password1$";
|
||||||
|
|
@ -35,13 +39,16 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Act & Assert
|
// Act & Assert
|
||||||
await UserStories.EnableTwoFactorAuthentication(index);
|
await UserStories.EnableTwoFactorAuthentication(index);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanConfirmEmail()
|
public async Task CanConfirmEmail()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var emails = new ContosoEmailSender();
|
var emails = new ContosoEmailSender();
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureServices(s => s.SetupTestEmailSender(emails)));
|
builder.ConfigureServices(s => s.SetupTestEmailSender(emails)));
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
||||||
|
|
@ -56,13 +63,16 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
var email = emails.SentEmails[1];
|
var email = emails.SentEmails[1];
|
||||||
await UserStories.ConfirmEmailAsync(email, client);
|
await UserStories.ConfirmEmailAsync(email, client);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanChangePassword()
|
public async Task CanChangePassword()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var principals = new List<ClaimsPrincipal>();
|
var principals = new List<ClaimsPrincipal>();
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureTestServices(s => s.SetupGetUserClaimsPrincipal(user => principals.Add(user), IdentityConstants.ApplicationScheme)));
|
builder.ConfigureTestServices(s => s.SetupGetUserClaimsPrincipal(user => principals.Add(user), IdentityConstants.ApplicationScheme)));
|
||||||
|
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
@ -87,13 +97,16 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Signing in again with a different client uses the same security stamp claim
|
// Signing in again with a different client uses the same security stamp claim
|
||||||
AssertClaimsEqual(principals[1], principals[2], "AspNet.Identity.SecurityStamp");
|
AssertClaimsEqual(principals[1], principals[2], "AspNet.Identity.SecurityStamp");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanSetPasswordWithExternalLogin()
|
public async Task CanSetPasswordWithExternalLogin()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var principals = new List<ClaimsPrincipal>();
|
var principals = new List<ClaimsPrincipal>();
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureTestServices(s => s.SetupTestThirdPartyLogin()
|
builder.ConfigureTestServices(s => s.SetupTestThirdPartyLogin()
|
||||||
.SetupGetUserClaimsPrincipal(user => principals.Add(user), IdentityConstants.ApplicationScheme)));
|
.SetupGetUserClaimsPrincipal(user => principals.Add(user), IdentityConstants.ApplicationScheme)));
|
||||||
|
|
||||||
|
|
@ -122,13 +135,16 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Can log in with the password set above
|
// Can log in with the password set above
|
||||||
await UserStories.LoginExistingUserAsync(ServerFactory.CreateDefaultClient(server), email, "!Test.Password2");
|
await UserStories.LoginExistingUserAsync(ServerFactory.CreateDefaultClient(server), email, "!Test.Password2");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanRemoveExternalLogin()
|
public async Task CanRemoveExternalLogin()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var principals = new List<ClaimsPrincipal>();
|
var principals = new List<ClaimsPrincipal>();
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureTestServices(s => s.SetupTestThirdPartyLogin()
|
builder.ConfigureTestServices(s => s.SetupTestThirdPartyLogin()
|
||||||
.SetupGetUserClaimsPrincipal(user => principals.Add(user), IdentityConstants.ApplicationScheme)));
|
.SetupGetUserClaimsPrincipal(user => principals.Add(user), IdentityConstants.ApplicationScheme)));
|
||||||
|
|
||||||
|
|
@ -146,13 +162,16 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// RefreshSignIn generates a new security stamp claim
|
// RefreshSignIn generates a new security stamp claim
|
||||||
AssertClaimsNotEqual(principals[0], principals[1], "AspNet.Identity.SecurityStamp");
|
AssertClaimsNotEqual(principals[0], principals[1], "AspNet.Identity.SecurityStamp");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanResetAuthenticator()
|
public async Task CanResetAuthenticator()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var principals = new List<ClaimsPrincipal>();
|
var principals = new List<ClaimsPrincipal>();
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureTestServices(s => s.SetupTestThirdPartyLogin()
|
builder.ConfigureTestServices(s => s.SetupTestThirdPartyLogin()
|
||||||
.SetupGetUserClaimsPrincipal(user => principals.Add(user), IdentityConstants.ApplicationScheme)));
|
.SetupGetUserClaimsPrincipal(user => principals.Add(user), IdentityConstants.ApplicationScheme)));
|
||||||
|
|
||||||
|
|
@ -174,12 +193,15 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// RefreshSignIn generates a new security stamp claim
|
// RefreshSignIn generates a new security stamp claim
|
||||||
AssertClaimsNotEqual(principals[1], principals[2], "AspNet.Identity.SecurityStamp");
|
AssertClaimsNotEqual(principals[1], principals[2], "AspNet.Identity.SecurityStamp");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanDownloadPersonalData()
|
public async Task CanDownloadPersonalData()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var client = ServerFactory.CreateDefaultClient();
|
var client = ServerFactory.CreateDefaultClient(loggerFactory);
|
||||||
|
|
||||||
var userName = $"{Guid.NewGuid()}@example.com";
|
var userName = $"{Guid.NewGuid()}@example.com";
|
||||||
var password = $"!Test.Password1$";
|
var password = $"!Test.Password1$";
|
||||||
|
|
@ -196,12 +218,15 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
Assert.Contains($"\"PhoneNumberConfirmed\":\"False\"", jsonData);
|
Assert.Contains($"\"PhoneNumberConfirmed\":\"False\"", jsonData);
|
||||||
Assert.Contains($"\"TwoFactorEnabled\":\"False\"", jsonData);
|
Assert.Contains($"\"TwoFactorEnabled\":\"False\"", jsonData);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanDeleteUser()
|
public async Task CanDeleteUser()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var client = ServerFactory.CreateDefaultClient();
|
var client = ServerFactory.CreateDefaultClient(loggerFactory);
|
||||||
|
|
||||||
var userName = $"{Guid.NewGuid()}@example.com";
|
var userName = $"{Guid.NewGuid()}@example.com";
|
||||||
var password = $"!Test.Password1$";
|
var password = $"!Test.Password1$";
|
||||||
|
|
@ -211,6 +236,7 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Act & Assert
|
// Act & Assert
|
||||||
await UserStories.DeleteUser(index, password);
|
await UserStories.DeleteUser(index, password);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void AssertClaimsEqual(ClaimsPrincipal expectedPrincipal, ClaimsPrincipal actualPrincipal, string claimType)
|
private void AssertClaimsEqual(ClaimsPrincipal expectedPrincipal, ClaimsPrincipal actualPrincipal, string claimType)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,15 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.Extensions.Logging.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
{
|
{
|
||||||
public class RegistrationTests : IClassFixture<ServerFactory>
|
public class RegistrationTests : LoggedTest, IClassFixture<ServerFactory>
|
||||||
{
|
{
|
||||||
public RegistrationTests(ServerFactory serverFactory)
|
public RegistrationTests(ServerFactory serverFactory, ITestOutputHelper output) : base(output)
|
||||||
{
|
{
|
||||||
ServerFactory = serverFactory;
|
ServerFactory = serverFactory;
|
||||||
}
|
}
|
||||||
|
|
@ -18,9 +20,11 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanRegisterAUser()
|
public async Task CanRegisterAUser()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var client = ServerFactory.CreateDefaultClient();
|
var client = ServerFactory.CreateDefaultClient(loggerFactory);
|
||||||
|
|
||||||
var userName = $"{Guid.NewGuid()}@example.com";
|
var userName = $"{Guid.NewGuid()}@example.com";
|
||||||
var password = $"!Test.Password1$";
|
var password = $"!Test.Password1$";
|
||||||
|
|
@ -28,12 +32,15 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
// Act & Assert
|
// Act & Assert
|
||||||
await UserStories.RegisterNewUserAsync(client, userName, password);
|
await UserStories.RegisterNewUserAsync(client, userName, password);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CanRegisterWithASocialLoginProvider()
|
public async Task CanRegisterWithASocialLoginProvider()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var server = ServerFactory.CreateServer(builder =>
|
var server = ServerFactory.CreateServer(loggerFactory, builder =>
|
||||||
builder.ConfigureServices(services => services.SetupTestThirdPartyLogin()));
|
builder.ConfigureServices(services => services.SetupTestThirdPartyLogin()));
|
||||||
var client = ServerFactory.CreateDefaultClient(server);
|
var client = ServerFactory.CreateDefaultClient(server);
|
||||||
|
|
||||||
|
|
@ -46,3 +53,4 @@ namespace Microsoft.AspNetCore.Identity.FunctionalTests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,11 @@ using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Identity.Service;
|
using Microsoft.AspNetCore.Identity.Service;
|
||||||
using Microsoft.AspNetCore.Identity.Service.IntegratedWebClient;
|
using Microsoft.AspNetCore.Identity.Service.IntegratedWebClient;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.Mvc.Testing;
|
|
||||||
using Microsoft.AspNetCore.TestHost;
|
using Microsoft.AspNetCore.TestHost;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.IdentityModel.Tokens;
|
using Microsoft.IdentityModel.Tokens;
|
||||||
|
|
||||||
namespace Microsoft.AspnetCore.Identity.Service.FunctionalTests
|
namespace Microsoft.AspnetCore.Identity.Service.FunctionalTests
|
||||||
|
|
@ -24,9 +24,10 @@ namespace Microsoft.AspnetCore.Identity.Service.FunctionalTests
|
||||||
{
|
{
|
||||||
private readonly DelegatingHandler _loopBackHandler = new LoopBackHandler();
|
private readonly DelegatingHandler _loopBackHandler = new LoopBackHandler();
|
||||||
|
|
||||||
public CredentialsServerBuilder(string[] args = null)
|
public CredentialsServerBuilder(ILoggerFactory loggerFactory, string[] args = null)
|
||||||
{
|
{
|
||||||
Server = Program.CreateWebHostBuilder(args ?? Array.Empty<string>())
|
Server = Program.CreateWebHostBuilder(args ?? Array.Empty<string>())
|
||||||
|
.ConfigureServices(collection => collection.AddSingleton(loggerFactory))
|
||||||
.UseSolutionRelativeContentRoot(@"./test/WebSites/Identity.OpenIdConnect.WebSite");
|
.UseSolutionRelativeContentRoot(@"./test/WebSites/Identity.OpenIdConnect.WebSite");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,32 +2,39 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Net.Http;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Mvc.Testing;
|
using Microsoft.AspNetCore.Mvc.Testing;
|
||||||
using Microsoft.AspNetCore.Testing.xunit;
|
using Microsoft.AspNetCore.Testing.xunit;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Logging.Testing;
|
||||||
using Microsoft.Extensions.Primitives;
|
using Microsoft.Extensions.Primitives;
|
||||||
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
|
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
|
||||||
using Microsoft.Net.Http.Headers;
|
using Microsoft.Net.Http.Headers;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using System.Net.Http;
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
namespace Microsoft.AspnetCore.Identity.Service.FunctionalTests
|
namespace Microsoft.AspnetCore.Identity.Service.FunctionalTests
|
||||||
{
|
{
|
||||||
public class TraditionalWebApplicationTests
|
public class TraditionalWebApplicationTests : LoggedTest
|
||||||
{
|
{
|
||||||
|
public TraditionalWebApplicationTests(ITestOutputHelper output) : base(output) { }
|
||||||
|
|
||||||
[ConditionalFact(Skip = "https://github.com/aspnet/Identity/issues/1630")]
|
[ConditionalFact(Skip = "https://github.com/aspnet/Identity/issues/1630")]
|
||||||
[FrameworkSkipCondition(RuntimeFrameworks.CLR, SkipReason = "https://github.com/aspnet/Identity/issues/1346")]
|
[FrameworkSkipCondition(RuntimeFrameworks.CLR, SkipReason = "https://github.com/aspnet/Identity/issues/1346")]
|
||||||
public async Task CanPerform_AuthorizationCode_Flow()
|
public async Task CanPerform_AuthorizationCode_Flow()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory, minLogLevel: LogLevel.Debug))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var clientId = Guid.NewGuid().ToString();
|
var clientId = Guid.NewGuid().ToString();
|
||||||
var resourceId = Guid.NewGuid().ToString();
|
var resourceId = Guid.NewGuid().ToString();
|
||||||
|
|
||||||
var appBuilder = new CredentialsServerBuilder()
|
var appBuilder = new CredentialsServerBuilder(loggerFactory)
|
||||||
.EnsureDeveloperCertificate()
|
.EnsureDeveloperCertificate()
|
||||||
.ConfigureReferenceData(data => data
|
.ConfigureReferenceData(data => data
|
||||||
.CreateIntegratedWebClientApplication(clientId)
|
.CreateIntegratedWebClientApplication(clientId)
|
||||||
|
|
@ -94,6 +101,7 @@ namespace Microsoft.AspnetCore.Identity.Service.FunctionalTests
|
||||||
ResponseAssert.IsOK(protectedResourceResponse);
|
ResponseAssert.IsOK(protectedResourceResponse);
|
||||||
ResponseAssert.IsHtmlDocument(protectedResourceResponse);
|
ResponseAssert.IsHtmlDocument(protectedResourceResponse);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private SetCookieHeaderValue CreateExpectedSetCorrelationIdCookie(DateTime expires = default(DateTime))
|
private SetCookieHeaderValue CreateExpectedSetCorrelationIdCookie(DateTime expires = default(DateTime))
|
||||||
{
|
{
|
||||||
|
|
@ -120,12 +128,14 @@ namespace Microsoft.AspnetCore.Identity.Service.FunctionalTests
|
||||||
[ConditionalFact(Skip = "https://github.com/aspnet/Identity/issues/1630")]
|
[ConditionalFact(Skip = "https://github.com/aspnet/Identity/issues/1630")]
|
||||||
[FrameworkSkipCondition(RuntimeFrameworks.CLR, SkipReason = "https://github.com/aspnet/Identity/issues/1346")]
|
[FrameworkSkipCondition(RuntimeFrameworks.CLR, SkipReason = "https://github.com/aspnet/Identity/issues/1346")]
|
||||||
public async Task CanPerform_IdToken_Flow()
|
public async Task CanPerform_IdToken_Flow()
|
||||||
|
{
|
||||||
|
using (StartLog(out var loggerFactory, minLogLevel: LogLevel.Debug))
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var clientId = Guid.NewGuid().ToString();
|
var clientId = Guid.NewGuid().ToString();
|
||||||
var resourceId = Guid.NewGuid().ToString();
|
var resourceId = Guid.NewGuid().ToString();
|
||||||
|
|
||||||
var appBuilder = new CredentialsServerBuilder()
|
var appBuilder = new CredentialsServerBuilder(loggerFactory)
|
||||||
.EnsureDeveloperCertificate()
|
.EnsureDeveloperCertificate()
|
||||||
.ConfigureReferenceData(data => data
|
.ConfigureReferenceData(data => data
|
||||||
.CreateIntegratedWebClientApplication(clientId)
|
.CreateIntegratedWebClientApplication(clientId)
|
||||||
|
|
@ -183,6 +193,7 @@ namespace Microsoft.AspnetCore.Identity.Service.FunctionalTests
|
||||||
Assert.Equal(HttpStatusCode.OK, protectedResourceResponse.StatusCode);
|
Assert.Equal(HttpStatusCode.OK, protectedResourceResponse.StatusCode);
|
||||||
ResponseAssert.IsHtmlDocument(protectedResourceResponse);
|
ResponseAssert.IsHtmlDocument(protectedResourceResponse);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public class Form
|
public class Form
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue