public async Task CanLogInAfterConfirmingEmail() { // Arrange TestEmailSender testEmailSender = new TestEmailSender(); var server = ServerFactory.CreateServer(builder => { builder.ConfigureServices(services => services .AddSingleton <IEmailSender>(testEmailSender) .Configure <IdentityOptions>(opt => opt.SignIn.RequireConfirmedEmail = true)); }); var client = ServerFactory.CreateDefaultClient(server); var newClient = ServerFactory.CreateDefaultClient(server); var userName = $"{Guid.NewGuid()}@example.com"; var password = $"!Test.Password1$"; var loggedIn = await UserStories.RegisterNewUserAsync(client, userName, password); // Act & Assert // Use a new client to simulate a new browser session. var emailBody = HtmlAssert.IsHtmlFragment(testEmailSender.HtmlMessage); var linkElement = HtmlAssert.HasElement("a", emailBody); var link = Assert.IsAssignableFrom <IHtmlAnchorElement>(linkElement); var response = await newClient.GetAsync(link.Href); await UserStories.LoginExistingUserAsync(newClient, userName, password); }
public async Task AnonymousUserCanAccessNotAuthorizedPages(string url) { // Arrange var client = ServerFactory.CreateDefaultClient(); // Act var response = await client.GetAsync(url); // Assert await ResponseAssert.IsHtmlDocumentAsync(response); }
public async Task CanRegisterAUser() { // Arrange var client = ServerFactory.CreateDefaultClient(); var userName = $"{Guid.NewGuid()}@example.com"; var password = $"!Test.Password1$"; // Act & Assert await UserStories.RegisterNewUserAsync(client, userName, password); }
public async Task AuthenticatedUserCanAccessAuthorizedPages(string url) { // Arrange var client = ServerFactory.CreateDefaultClient(); await UserStories.RegisterNewUserAsync(client); // Act var response = await client.GetAsync(url); // Assert await ResponseAssert.IsHtmlDocumentAsync(response); }
public async Task AnonymousUserCantAccessAuthorizedPages(string url) { // Arrange var client = ServerFactory.CreateDefaultClient(); // Act var response = await client.GetAsync(url); // Assert var location = ResponseAssert.IsRedirect(response); Assert.StartsWith("/Identity/Account/Login?", location.PathAndQuery); }
public async Task CanEnableTwoFactorAuthentication() { // Arrange var client = ServerFactory.CreateDefaultClient(); var userName = $"{Guid.NewGuid()}@example.com"; var password = $"!Test.Password1$"; var index = await UserStories.RegisterNewUserAsync(client, userName, password); // Act & Assert await UserStories.EnableTwoFactorAuthentication(index, twoFactorEnabled : false); }
public async Task CanLogInWithAPreviouslyRegisteredUser() { // Arrange var server = ServerFactory.CreateDefaultServer(); var client = ServerFactory.CreateDefaultClient(server); var newClient = ServerFactory.CreateDefaultClient(server); var userName = $"{Guid.NewGuid()}@example.com"; var password = $"!Test.Password1$"; // Act & Assert await UserStories.RegisterNewUserAsync(client, userName, password); // Use a new client to simulate a new browser session. await UserStories.LoginExistingUserAsync(newClient, userName, password); }
public async Task CanLogInWithTwoFactorAuthentication() { // Arrange var server = ServerFactory.CreateDefaultServer(); var client = ServerFactory.CreateDefaultClient(server); var newClient = ServerFactory.CreateDefaultClient(server); var userName = $"{Guid.NewGuid()}@example.com"; var password = $"!Test.Password1$"; var loggedIn = await UserStories.RegisterNewUserAsync(client, userName, password); var showRecoveryCodes = await UserStories.EnableTwoFactorAuthentication(loggedIn, twoFactorEnabled : false); var twoFactorKey = showRecoveryCodes.Context[EnableAuthenticator.AuthenticatorKey]; // Act & Assert // Use a new client to simulate a new browser session. await UserStories.LoginExistingUser2FaAsync(newClient, userName, password, twoFactorKey); }
public async Task CannotLogInWithoutRequiredEmailConfirmation() { // Arrange var testEmailSender = new TestEmailSender(); var server = ServerFactory.CreateServer(builder => { builder.ConfigureServices(services => services .AddSingleton <IEmailSender>(testEmailSender) .Configure <IdentityOptions>(opt => opt.SignIn.RequireConfirmedEmail = true)); }); var client = ServerFactory.CreateDefaultClient(server); var newClient = ServerFactory.CreateDefaultClient(server); var userName = $"{Guid.NewGuid()}@example.com"; var password = $"!Test.Password1$"; var loggedIn = await UserStories.RegisterNewUserAsync(client, userName, password); // Act & Assert // Use a new client to simulate a new browser session. await Assert.ThrowsAnyAsync <XunitException>(() => UserStories.LoginExistingUserAsync(newClient, userName, password)); }