Beispiel #1
0
        public void Invalid_password_fails_validation(string password, string expectedError)
        {
            var formData = new ResetPasswordFormData
            {
                NewPassword = password
            };

            Assert.Contains(ValidateModel(formData),
                            v => v.MemberNames.Contains(nameof(ResetPasswordFormData.NewPassword)) &&
                            v.ErrorMessage.ToUpperInvariant() == expectedError);
        }
Beispiel #2
0
        public void Valid_password_passes_validation()
        {
            var formData = new ResetPasswordFormData
            {
                NewPassword = "******"
            };

            Assert.DoesNotContain(ValidateModel(formData),
                                  v => v.MemberNames.Contains(nameof(ResetPasswordFormData.NewPassword)) &&
                                  v.ErrorMessage.ToUpperInvariant() == "THE NEW PASSWORD IS REQUIRED.");
        }
        public void Valid_token_attempts_login()
        {
            using (var controller = CreateController())
            {
                SetupValidTokenScenario();

                var model = new ResetPasswordFormData {
                    NewPassword = "******"
                };
                var result = controller.UpdatePassword(model);

                _loginMemberWrapper.Verify(x => x.LoginMember(_currentMember.Object.Username, model.NewPassword), Times.Once);
            }
        }
        public void Valid_token_is_logged()
        {
            using (var controller = CreateController())
            {
                SetupValidTokenScenario();

                var model = new ResetPasswordFormData {
                    NewPassword = "******"
                };
                var result = controller.UpdatePassword(model);

                _logger.Verify(x => x.Info(typeof(ResetPasswordSurfaceController), LoggingTemplates.MemberPasswordReset, _currentMember.Object.Username, _currentMember.Object.Key, typeof(ResetPasswordSurfaceController), nameof(ResetPasswordSurfaceController.UpdatePassword)), Times.Once);
            }
        }
        public void Valid_token_resets_password()
        {
            using (var controller = CreateController())
            {
                SetupValidTokenScenario();

                var model = new ResetPasswordFormData {
                    NewPassword = "******"
                };
                var result = controller.UpdatePassword(model);

                base.MemberService.Verify(x => x.SavePassword(_currentMember.Object, model.NewPassword), Times.Once);
            }
        }
        public void Valid_token_does_not_attempt_login_if_member_blocked()
        {
            using (var controller = CreateController())
            {
                SetupValidTokenScenario();
                _currentMember.Setup(x => x.GetValue <bool>("blockLogin", null, null, false)).Returns(true);

                var model = new ResetPasswordFormData {
                    NewPassword = "******"
                };
                var result = controller.UpdatePassword(model);

                _loginMemberWrapper.Verify(x => x.LoginMember(_currentMember.Object.Username, model.NewPassword), Times.Never);
            }
        }
        public void Invalid_ModelState_does_not_save()
        {
            using (var controller = CreateController())
            {
                var model = new ResetPasswordFormData {
                    NewPassword = "******"
                };
                controller.ModelState.AddModelError(string.Empty, "Any error");

                controller.UpdatePassword(model);

                MemberService.Verify(x => x.Save(_currentMember.Object, true), Times.Never);
                MemberService.Verify(x => x.SavePassword(_currentMember.Object, model.NewPassword), Times.Never);
            }
        }
        public override void Execute()
        {
            #line 6 "..\..\Views\ResetPassword.cshtml"

            Html.EnableClientValidation();
            Html.EnableUnobtrusiveJavaScript();
            Html.RequiresJs("~/scripts/jquery.validate.min.js");
            Html.RequiresJs("~/scripts/jquery.validate.unobtrusive.min.js");


            #line default
            #line hidden
            WriteLiteral("\r\n<div");

            WriteLiteral(" class=\"container-xl\"");

            WriteLiteral(">\r\n    <h1>");


            #line 13 "..\..\Views\ResetPassword.cshtml"
            Write(Model.Name);


            #line default
            #line hidden
            WriteLiteral("</h1>\r\n\r\n");


            #line 15 "..\..\Views\ResetPassword.cshtml"


            #line default
            #line hidden

            #line 15 "..\..\Views\ResetPassword.cshtml"
            if (User.Identity.IsAuthenticated)
            {
            #line default
            #line hidden

            #line 17 "..\..\Views\ResetPassword.cshtml"
                Write(Html.Partial("_Logout"));


            #line default
            #line hidden

            #line 17 "..\..\Views\ResetPassword.cshtml"
            }
            else
            {
            #line default
            #line hidden

            #line 21 "..\..\Views\ResetPassword.cshtml"

                if (Model.PasswordResetTokenValid)
                {
            #line default
            #line hidden

            #line 24 "..\..\Views\ResetPassword.cshtml"

                    using (Html.BeginUmbracoForm <ResetPasswordSurfaceController>("UpdatePassword"))
                    {
            #line default
            #line hidden

            #line 27 "..\..\Views\ResetPassword.cshtml"
                        Write(Html.AntiForgeryToken());


            #line default
            #line hidden

            #line 27 "..\..\Views\ResetPassword.cshtml"

                        var resetPasswordUpdate = new ResetPasswordFormData();



            #line default
            #line hidden
                        WriteLiteral("                <div");

                        WriteLiteral(" class=\"form-group\"");

                        WriteLiteral(">\r\n");

                        WriteLiteral("                    ");


            #line 31 "..\..\Views\ResetPassword.cshtml"
                        Write(Html.LabelFor(m => resetPasswordUpdate.NewPassword, "New password"));


            #line default
            #line hidden
                        WriteLiteral("\r\n");


            #line 32 "..\..\Views\ResetPassword.cshtml"


            #line default
            #line hidden

            #line 32 "..\..\Views\ResetPassword.cshtml"
                        var describedBy = "form-new-password";

            #line default
            #line hidden
                        WriteLiteral("\r\n");


            #line 33 "..\..\Views\ResetPassword.cshtml"


            #line default
            #line hidden

            #line 33 "..\..\Views\ResetPassword.cshtml"
                        if (!string.IsNullOrEmpty(Model.PasswordHelp))
                        {
                            describedBy = "form-new-password form-new-password-help";


            #line default
            #line hidden
                            WriteLiteral("                        <p");

                            WriteLiteral(" class=\"form-text\"");

                            WriteLiteral(" id=\"form-new-password-help\"");

                            WriteLiteral("><small>");


            #line 36 "..\..\Views\ResetPassword.cshtml"
                            Write(Model.PasswordHelp);


            #line default
            #line hidden
                            WriteLiteral("</small></p>\r\n");


            #line 37 "..\..\Views\ResetPassword.cshtml"
                        }


            #line default
            #line hidden
                        WriteLiteral("                    ");


            #line 38 "..\..\Views\ResetPassword.cshtml"
                        Write(Html.PasswordFor(m => resetPasswordUpdate.NewPassword, new { @class = "form-control", required = "required", aria_describedby = describedBy, autocorrect = "off", autocapitalize = "off", autocomplete = "new-password" }));


            #line default
            #line hidden
                        WriteLiteral("\r\n");

                        WriteLiteral("                    ");


            #line 39 "..\..\Views\ResetPassword.cshtml"
                        Write(Html.ValidationMessageFor(m => resetPasswordUpdate.NewPassword, null, new { id = "form-new-password" }));


            #line default
            #line hidden
                        WriteLiteral("\r\n                </div>\r\n");


            #line 41 "..\..\Views\ResetPassword.cshtml"



            #line default
            #line hidden
                        WriteLiteral("                <button");

                        WriteLiteral(" class=\"btn btn-primary\"");

                        WriteLiteral(">");


            #line 42 "..\..\Views\ResetPassword.cshtml"
                        Write(Model.UpdatePasswordButton);


            #line default
            #line hidden
                        WriteLiteral("</button>\r\n");


            #line 43 "..\..\Views\ResetPassword.cshtml"
                    }
                }
                else
                {
            #line default
            #line hidden

            #line 47 "..\..\Views\ResetPassword.cshtml"



            #line default
            #line hidden

            #line 48 "..\..\Views\ResetPassword.cshtml"
                    Write(Html.ProtectEmailAddresses(Model.PasswordResetTokenInvalid));


            #line default
            #line hidden

            #line 48 "..\..\Views\ResetPassword.cshtml"
                }
            }


            #line default
            #line hidden
            WriteLiteral("</div>");
        }