public async Task RegiterAndConfirmEmail_Success() { var client = await Utilities.GetClientWithCsrfAsync(); var email = Utilities.UniqueEmail(); var form = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("email", email) }); var result = await client.PostAsync("api/account/register", form); result.EnsureSuccessStatusCode(); Assert.IsNotNull(TestEmailSender.Emails[email]); GetGuidAndToken(TestEmailSender.Emails[email], out var guid, out var token); var form2 = Form(new { guid, token, username = Utilities.UniqueUserName(), password = "******" }); var result2 = await client.PostAsync("api/account/confirmemail", form2); Assert.AreEqual(HttpStatusCode.OK, result2.StatusCode); var result3 = await client.GetAsync("api/account/current"); result3.EnsureSuccessStatusCode(); var json = JObject.Parse(await result3.Content.ReadAsStringAsync()); // Assert.AreEqual(email, json["email"]); }
public async Task Register_EmailConflict() { var client = await Utilities.GetClientWithCsrfAsync(); // get a client before getting a service var usermanager = Utilities.GetService <UserManager <AppUser> >(); var mockid = Guid.NewGuid().ToString(); var mockemail = Utilities.UniqueEmail(); await usermanager.CreateAsync(new AppUser() { Id = mockid, UserName = mockid.Replace('-', '_'), Email = mockemail }); Assert.IsNotNull(await usermanager.FindByIdAsync(mockid)); var form = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("email", mockemail) }); var result = await client.PostAsync("api/account/register", form); Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); }
public async Task ConfirmEmail_BadGuid() { var client = await Utilities.GetClientWithCsrfAsync(); var email = Utilities.UniqueEmail(); var form = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("email", email) }); var result = await client.PostAsync("api/account/register", form); result.EnsureSuccessStatusCode(); Assert.IsNotNull(TestEmailSender.Emails[email]); GetGuidAndToken(TestEmailSender.Emails[email], out _, out var token); var form2 = Form(new { guid = "badguid", token, username = Utilities.UniqueUserName(), password = "******" }); var result2 = await client.PostAsync("api/account/confirmemail", form2); Assert.AreEqual(HttpStatusCode.Unauthorized, result2.StatusCode); Assert.IsTrue(string.IsNullOrEmpty(await result2.Content.ReadAsStringAsync())); }
public async Task Init() { await Utilities.GetClientWithCsrfAsync(); var context = Utilities.GetService <AppDbContext>(); context.Users.RemoveRange(context.Users); await context.SaveChangesAsync(); }
public async Task ShouldReturnPong() { var client = await Utilities.GetClientWithCsrfAsync(); var result = await client.PostAsync("api/ping", new StringContent("")); result.EnsureSuccessStatusCode(); Assert.AreEqual("pong", await result.Content.ReadAsStringAsync()); }
public async Task Register_BadEmails(string bademail) { var client = await Utilities.GetClientWithCsrfAsync(); var form = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("email", bademail) }); var result = await client.PostAsync("api/account/register", form); Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); }
public async Task Register_EmailSent() { var client = await Utilities.GetClientWithCsrfAsync(); var email = Utilities.UniqueEmail(); var form = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("email", email) }); var result = await client.PostAsync("api/account/register", form); result.EnsureSuccessStatusCode(); Assert.IsNotNull(TestEmailSender.Emails[email]); }
public async Task ConfirmEmail_UserNameConflict() { var client = await Utilities.GetClientWithCsrfAsync(); var email = Utilities.UniqueEmail(); var form = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("email", email) }); var result = await client.PostAsync("api/account/register", form); result.EnsureSuccessStatusCode(); Assert.IsNotNull(TestEmailSender.Emails[email]); var usermanager = Utilities.GetService <UserManager <AppUser> >(); var mockid = Guid.NewGuid().ToString(); var mockemail = Utilities.UniqueEmail(); var mockusername = Utilities.UniqueUserName(); await usermanager.CreateAsync(new AppUser() { Id = mockid, UserName = mockusername, Email = mockemail }); Assert.IsNotNull(await usermanager.FindByIdAsync(mockid)); GetGuidAndToken(TestEmailSender.Emails[email], out var guid, out var token); var form2 = Form(new { guid, token, username = mockusername, password = "******" }); var result2 = await client.PostAsync("api/account/confirmemail", form2); Assert.AreEqual(HttpStatusCode.Unauthorized, result2.StatusCode); // Assert.AreEqual("DuplicateUserName", await result2.Content.ReadAsStringAsync()); }