public ActionResult Register(RegisterViewModel model, string returnUrl, bool isAjaxRequest) { if (ModelState.IsValid) { CreateUserResult status = AuthService.CreateUser(model.Email, model.DisplayName, model.Password); if (status == CreateUserResult.Success) { TokenService.SetAuthCookie(model.Email, createPersistentCookie: false, roles: Enumerable.Empty<string>()); return CreateSuccessResult(returnUrl, isAjaxRequest); } else { ModelState.AddModelError("", "There is already a user with that email address."); } } return CreateErrorResult(model, isAjaxRequest); }
public ActionResult Register(string content) { var model = new RegisterViewModel(); if (!String.IsNullOrEmpty(content)) { return PartialView(model); } else { return View(model); } }
public void WithValidModelAndUserInfoReturnsRedirectToReturnUrlIfLocal_Ajax() { // Arrange var model = new RegisterViewModel() { Email = "*****@*****.**", DisplayName = "Real User", Password = "******" }; var c = CreateController(); c.AuthService.CreateUser("*****@*****.**", "Other User", "password"); // Act var result = c.Register(model, returnUrl: "/app/Foo/Bar", isAjaxRequest: true); // Assert ActionAssert.IsJsonResult(result, new { success = true, redirect = "/app/Foo/Bar" }); Assert.True(c.AuthService.Data.Users.Where(u => u.Email == "*****@*****.**").Any()); }
public void WithValidModelAndUserInfoReturnsRedirectToHomeIfReturnUrlNotLocal() { // Arrange var model = new RegisterViewModel() { Email = "*****@*****.**", DisplayName = "Real User", Password = "******" }; var c = CreateController(); c.AuthService.CreateUser("*****@*****.**", "Other User", "password"); // Act var result = c.Register(model, returnUrl: "http://www.microsoft.com", isAjaxRequest: false); // Assert ActionAssert.IsRedirectResult(result, "/app/Home/Index"); Assert.True(c.AuthService.Data.Users.Where(u => u.Email == "*****@*****.**").Any()); }
public void WithInvalidModelReturnsError_Ajax() { // Arrange var c = CreateController(); c.ModelState.AddModelError("", "Test"); var model = new RegisterViewModel(); // Act var result = c.Register(model, returnUrl: null, isAjaxRequest: true); // Assert ActionAssert.IsJsonResult(result, new { success = false, errors = new[] { "Test" } }); Assert.Contains("Test", c.ModelState.AllErrors()); }
public void WithDuplicateEmailReturnsError_Ajax() { // Arrange var model = new RegisterViewModel() { Email = "*****@*****.**", DisplayName = "Real User", Password = "******" }; var c = CreateController(); c.AuthService.CreateUser("*****@*****.**", "Real User", "123456"); // Act var result = c.Register(model, returnUrl: null, isAjaxRequest: true); // Assert ActionAssert.IsJsonResult(result, new { success = false, errors = new[] { "There is already a user with that email address." } }); Assert.Contains("There is already a user with that email address.", c.ModelState.AllErrors()); }