public void ValidateTrue() { var signup = new SignupData {Email = "*****@*****.**", IsCoppa = true, IsDaylightSaving = true, IsSubscribed = true, IsTos = true, Name = "Diana", Password = "******", PasswordRetype = "password", TimeZone = -5}; var controller = GetController(); _userManager.SetupAllProperties(); signup.Validate(controller.ModelState, _userManager.Object, String.Empty); Assert.IsTrue(controller.ModelState.IsValid); Assert.AreEqual(0, controller.ModelState.Keys.Count); }
public Profile Create(User user, SignupData signupData) { var profile = new Profile(user.UserID) { TimeZone = signupData.TimeZone, IsDaylightSaving = signupData.IsDaylightSaving, IsSubscribed = signupData.IsSubscribed, IsTos = signupData.IsTos }; _profileRepository.Create(profile); return profile; }
public void ValidateFalseBannedIP() { var signup = new SignupData { Email = "*****@*****.**", IsCoppa = true, IsDaylightSaving = true, IsSubscribed = true, IsTos = true, Name = "Diana", Password = "******", PasswordRetype = "password", TimeZone = -5 }; var controller = GetController(); const string bannedIP = "127.0.0.1"; _userManager.SetupAllProperties(); _userManager.Setup(u => u.IsIPBanned(bannedIP)).Returns(true); signup.Validate(controller.ModelState, _userManager.Object, bannedIP); Assert.False(controller.ModelState.IsValid); Assert.AreEqual(1, controller.ModelState.Keys.Count); Assert.IsTrue(controller.ModelState.ContainsKey("Email")); }
public void CreateFromUserAndSignupData() { var service = GetService(); var user = UserServiceTests.GetDummyUser("Jeff", "*****@*****.**"); var signupData = new SignupData {TimeZone = -5, IsSubscribed = true, IsTos = true, IsDaylightSaving = true}; _profileRepo.Setup(r => r.Create(It.Is<Profile>(p => p.UserID == user.UserID && p.TimeZone == signupData.TimeZone && p.IsSubscribed == signupData.IsSubscribed && p.IsTos == signupData.IsTos && p.IsDaylightSaving == signupData.IsDaylightSaving))).Verifiable(); var result = service.Create(user, signupData); Assert.AreEqual(user.UserID, result.UserID); Assert.AreEqual(signupData.IsDaylightSaving, result.IsDaylightSaving); Assert.AreEqual(signupData.IsSubscribed, result.IsSubscribed); Assert.AreEqual(signupData.IsTos, result.IsTos); Assert.AreEqual(signupData.TimeZone, result.TimeZone); }
public void CreateUserFromSignup() { const string name = "jeff"; const string nameCensor = "jeffcensor"; const string email = "*****@*****.**"; const string password = "******"; const string ip = "127.0.0.1"; var userManager = GetMockedUserService(); var dummyUser = GetDummyUser(nameCensor, email); _mockUserRepo.Setup(r => r.CreateUser(nameCensor, email, It.IsAny<DateTime>(), true, It.IsAny<string>(), It.IsAny<Guid>(), It.IsAny<Guid>())).Returns(dummyUser); _mockTextParser.Setup(t => t.Censor(name)).Returns(nameCensor); var settings = new Settings(); _mockSettingsManager.Setup(s => s.Current).Returns(settings); var signUpdata = new SignupData {Email = email, Name = name, Password = password}; var user = userManager.CreateUser(signUpdata, ip); _mockUserRepo.Verify(r => r.CreateUser(nameCensor, email, It.IsAny<DateTime>(), true, It.IsAny<string>(), It.IsAny<Guid>(), It.IsAny<Guid>()), Times.Once()); _mockSecurityLogService.Verify(s => s.CreateLogEntry(null, user, ip, String.Empty, SecurityLogType.UserCreated)); }
public void ValidateFalsePasswordsTooShort() { var signup = new SignupData { Email = "*****@*****.**", IsCoppa = true, IsDaylightSaving = true, IsSubscribed = true, IsTos = true, Name = "Diana", Password = "******", PasswordRetype = "pword", TimeZone = -5 }; var controller = GetController(); _userManager.SetupAllProperties(); _userManager.Setup(u => u.IsPasswordValid(signup.Password, controller.ModelState)).Returns(false).Callback(() => controller.ModelState.AddModelError("Password", "whatever")); signup.Validate(controller.ModelState, _userManager.Object, String.Empty); Assert.IsFalse(controller.ModelState.IsValid); Assert.AreEqual(1, controller.ModelState.Keys.Count); Assert.IsTrue(controller.ModelState.ContainsKey("Password")); }
public void CreateNotValid() { var controller = GetController(); var context = new HttpContextHelper(); controller.ControllerContext = new ControllerContext(context.MockContext.Object, new RouteData(), controller); const string tos = "blah blah blah"; var settings = new Settings {TermsOfService = tos}; _settingsManager.Setup(s => s.Current).Returns(settings); _userService.Setup(u => u.IsEmailInUse(It.IsAny<string>())).Returns(true); _userService.Setup(u => u.IsNameInUse(It.IsAny<string>())).Returns(true); var signUp = new SignupData {Email = "*****@*****.**", IsCoppa = true, IsDaylightSaving = true, IsSubscribed = true, IsTos = true, Name = "Diana", Password = "******", PasswordRetype = "pwd", TimeZone = -5}; var result = controller.Create(signUp).Result; Assert.IsFalse(controller.ModelState.IsValid); Assert.IsInstanceOf<ViewResult>(result); Assert.IsInstanceOf<String>(controller.ViewData[AccountController.CoppaDateKey]); Assert.IsInstanceOf<String>(controller.ViewData[AccountController.TosKey]); Assert.AreEqual(tos, controller.ViewData[AccountController.TosKey]); _userService.Verify(u => u.CreateUser(It.IsAny<SignupData>(), It.IsAny<string>()), Times.Never()); _profileService.Verify(p => p.Create(It.IsAny<User>(), It.IsAny<SignupData>()), Times.Never()); _newAccountMailer.Verify(n => n.Send(It.IsAny<User>(), It.IsAny<string>()), Times.Never()); }
public void ValidateFalseNameInUse() { const string name = "Diana"; var signup = new SignupData { Email = "*****@*****.**", IsCoppa = true, IsDaylightSaving = true, IsSubscribed = true, IsTos = true, Name = name, Password = "******", PasswordRetype = "password", TimeZone = -5 }; var controller = GetController(); _userManager.SetupAllProperties(); _userManager.Setup(u => u.IsNameInUse(name)).Returns(true); signup.Validate(controller.ModelState, _userManager.Object, String.Empty); Assert.IsFalse(controller.ModelState.IsValid); Assert.AreEqual(1, controller.ModelState.Keys.Count); Assert.IsTrue(controller.ModelState.ContainsKey("Name")); _userManager.Verify(u => u.IsNameInUse(name), Times.Once()); }
public void CreateValidNotCallExternalAuthAssociateWithoutAuthResult() { var controller = GetController(); MockUpUrl(controller); _userService.Setup(u => u.IsEmailInUse(It.IsAny<string>())).Returns(false); _userService.Setup(u => u.IsNameInUse(It.IsAny<string>())).Returns(false); var user = UserServiceTests.GetDummyUser("Diana", "*****@*****.**"); var signUp = new SignupData { Email = "*****@*****.**", IsCoppa = true, IsDaylightSaving = true, IsSubscribed = true, IsTos = true, Name = "Diana", Password = "******", PasswordRetype = "passwerd", TimeZone = -5 }; _userService.Setup(u => u.CreateUser(signUp, It.IsAny<string>())).Returns(user); _newAccountMailer.Setup(n => n.Send(It.IsAny<User>(), It.IsAny<string>())).Returns(System.Net.Mail.SmtpStatusCode.CommandNotImplemented); var settings = new Settings { IsNewUserApproved = true }; _settingsManager.Setup(s => s.Current).Returns(settings); var authManager = new Mock<IAuthenticationManager>(); _owinContext.Setup(x => x.Authentication).Returns(authManager.Object); var authResult = Task.FromResult <ExternalAuthenticationResult>(null); _externalAuth.Setup(x => x.GetAuthenticationResult(authManager.Object)).Returns(authResult); var result = controller.Create(signUp).Result; _userAssociationManager.Verify(x => x.Associate(user, It.IsAny<ExternalAuthenticationResult>(), It.IsAny<string>()), Times.Never); }
public void CreateValid() { var controller = GetController(); MockUpUrl(controller); _userService.Setup(u => u.IsEmailInUse(It.IsAny<string>())).Returns(false); _userService.Setup(u => u.IsNameInUse(It.IsAny<string>())).Returns(false); var user = UserServiceTests.GetDummyUser("Diana", "*****@*****.**"); var signUp = new SignupData { Email = "*****@*****.**", IsCoppa = true, IsDaylightSaving = true, IsSubscribed = true, IsTos = true, Name = "Diana", Password = "******", PasswordRetype = "passwerd", TimeZone = -5 }; _userService.Setup(u => u.CreateUser(signUp, It.IsAny<string>())).Returns(user); _newAccountMailer.Setup(n => n.Send(It.IsAny<User>(), It.IsAny<string>())).Returns(System.Net.Mail.SmtpStatusCode.CommandNotImplemented); var settings = new Settings { IsNewUserApproved = true }; _settingsManager.Setup(s => s.Current).Returns(settings); var authManager = new Mock<IAuthenticationManager>(); _owinContext.Setup(x => x.Authentication).Returns(authManager.Object); var authResult = Task.FromResult<ExternalAuthenticationResult>(null); _externalAuth.Setup(x => x.GetAuthenticationResult(It.IsAny<IAuthenticationManager>())).Returns(authResult); var result = controller.Create(signUp).Result; Assert.IsTrue(controller.ModelState.IsValid); Assert.AreEqual("AccountCreated", result.ViewName); Assert.IsTrue(result.ViewData["EmailProblem"].ToString().Contains(System.Net.Mail.SmtpStatusCode.CommandNotImplemented.ToString())); _userService.Verify(u => u.CreateUser(signUp, It.IsAny<string>()), Times.Once()); _profileService.Verify(p => p.Create(user, signUp), Times.Once()); _newAccountMailer.Verify(n => n.Send(user, It.IsAny<string>()), Times.Once()); }
public User CreateUser(SignupData signupData, string ip) { return CreateUser(signupData.Name, signupData.Email, signupData.Password, _settingsManager.Current.IsNewUserApproved, ip); }
public ViewResult Create() { SetupCreateData(); var signupData = new SignupData { IsDaylightSaving = true, IsSubscribed = true, TimeZone = _settingsManager.Current.ServerTimeZone }; return View(signupData); }
public async Task<ViewResult> Create(SignupData signupData) { signupData.Validate(ModelState, _userService, HttpContext.Request.UserHostAddress); if (ModelState.IsValid) { var user = _userService.CreateUser(signupData, HttpContext.Request.UserHostAddress); _profileService.Create(user, signupData); var verifyUrl = this.FullUrlHelper("Verify", "Account"); var result = _newAccountMailer.Send(user, verifyUrl); if (result != System.Net.Mail.SmtpStatusCode.Ok) ViewData["EmailProblem"] = Resources.EmailProblemAccount + result + "."; if (_settingsManager.Current.IsNewUserApproved) { ViewData["Result"] = Resources.AccountReady; _userService.Login(user.Email, signupData.Password, false, HttpContext); } else ViewData["Result"] = Resources.AccountReadyCheckEmail; var authentication = _owinContext.Authentication; var authResult = await _externalAuthentication.GetAuthenticationResult(authentication); if (authResult != null) _userAssociationManager.Associate(user, authResult, HttpContext.Request.UserHostAddress); return View("AccountCreated"); } SetupCreateData(); return View(signupData); }