public ActionResult LogOn(LogOnViewModel model, string returnUrl) { //We return back to the logon view if we have error ActionResult result = View(model); if (ModelState.IsValid) { if (authorizeService.AuthorizeMember(model)) { if (IsLocalUrlAndRelative(returnUrl)) { result = Redirect(returnUrl); } else { result = RedirectToAction("Index", "Dashboard", new { Area = "SymNet" }); } } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } } // If we got this far, something failed, redisplay form return result; }
public void LogOnTestWithTrueAuthorizeAndSingleSlashReturnUrl() { // Arrange MockRepository mocks = new MockRepository(); IAuthorizeService da = mocks.StrictMock<IAuthorizeService>(); LogOnViewModel model = new LogOnViewModel(); model.UserName = "******"; model.Password = "******"; using (mocks.Record()) { Expect .Call(da.AuthorizeMember(model)) .Return(true); } AuthorizeController controller = null; ActionResult result; try { controller = new AuthorizeController(da); //Init Controller new TestControllerBuilder().InitializeController(controller); ControllerTestHelper.MimicValidation(model, controller); // Act using (mocks.Playback()) { result = controller.LogOn(model, "/"); } //Assert result Assert.AreEqual(0, controller.ModelState.Count()); } finally { if (controller != null) { controller.Dispose(); } } ControllerTestHelper.TestForRedirection(result, "Index", "Dashboard", "SymNet"); }
public void LogOnTestWithNoUserName() { // Arrange MockRepository mocks = new MockRepository(); IAuthorizeService da = mocks.StrictMock<IAuthorizeService>(); LogOnViewModel model = new LogOnViewModel(); model.Password = "******"; using (mocks.Record()) { } using (mocks.Playback()) { AuthorizeController controller = new AuthorizeController(da); //Assert init Assert.AreEqual(0, controller.ModelState.Count()); ControllerTestHelper.MimicValidation(model, controller); // Act ViewResult result = controller.LogOn(model, "") as ViewResult; //Assert result Assert.AreNotEqual(0, controller.ModelState.Count()); Assert.AreEqual(model, result.Model); Assert.AreEqual(controller.ModelState.Count(), result.ViewData.ModelState.Count()); Assert.IsTrue(result.ViewData.ModelState.ContainsKey("username")); } }
public void LogOnTestWithTrueAuthorizeAndGoodReturnUrl() { // Arrange MockRepository mocks = new MockRepository(); IAuthorizeService da = mocks.StrictMock<IAuthorizeService>(); LogOnViewModel model = new LogOnViewModel(); model.UserName = "******"; model.Password = "******"; using (mocks.Record()) { Expect .Call(da.AuthorizeMember(model)) .Return(true); } AuthorizeController controller = new AuthorizeController(da); string returnUrl = "/SymNet/Pages/"; new TestControllerBuilder().InitializeController(controller); ControllerTestHelper.MimicValidation(model, controller); ActionResult result; // Act using (mocks.Playback()) { result = controller.LogOn(model, returnUrl); } //Assert result Assert.AreEqual(0, controller.ModelState.Count()); Assert.IsInstanceOfType(result, typeof(RedirectResult)); RedirectResult typedResult = (RedirectResult)result; Assert.IsFalse(typedResult.Permanent); Assert.AreEqual(returnUrl, typedResult.Url); }
public void LogOnTestWithFalseAuthorize() { // Arrange MockRepository mocks = new MockRepository(); IAuthorizeService da = mocks.StrictMock<IAuthorizeService>(); LogOnViewModel model = new LogOnViewModel(); model.UserName = "******"; model.Password = "******"; using (mocks.Record()) { Expect .Call(da.AuthorizeMember(model)) .Return(false); } AuthorizeController controller = new AuthorizeController(da); using (mocks.Playback()) { //Assert init Assert.AreEqual(0, controller.ModelState.Count()); ControllerTestHelper.MimicValidation(model, controller); // Act ViewResult result = controller.LogOn(model, "") as ViewResult; //Assert result Assert.AreNotEqual(0, controller.ModelState.Count()); Assert.AreEqual("", result.ViewName); Assert.AreEqual(model, result.Model); Assert.AreEqual(controller.ModelState.Count(), result.ViewData.ModelState.Count()); Assert.IsTrue(result.ViewData.ModelState.ContainsKey("")); // This is the main error from the controller } }