Example #1
0
		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);
		}
Example #2
0
		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;
		}
Example #3
0
		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);
		}
Example #5
0
		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));
		}
Example #6
0
		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());
		}
Example #8
0
		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());
		}
Example #11
0
		public User CreateUser(SignupData signupData, string ip)
		{
			return CreateUser(signupData.Name, signupData.Email, signupData.Password, _settingsManager.Current.IsNewUserApproved, ip);
		}
Example #12
0
		public ViewResult Create()
		{
			SetupCreateData();
			var signupData = new SignupData
			                 	{
			                 		IsDaylightSaving = true,
			                 		IsSubscribed = true,
									TimeZone = _settingsManager.Current.ServerTimeZone
			                 	};
			return View(signupData);
		}
Example #13
0
		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);
		}