static Honeypot() { SetDefaults(); InputNames = new HoneypotInputNameCollection(); Worker = new HoneypotWorker(); CustomRules = new HoneypotRuleCollection(); }
public void GetHtml_ShouldSetTheCssClassNameOnTrapInput() { // Arrange var worker = new HoneypotWorker(); //Act string html = worker.GetHtml(MvcHelper.GetHtmlHelper(), MvcHelper.GetHttpContext()).ToString(); // Assert Assert.True(html.Contains(Honeypot.CssClassName)); }
public void GetHoneypotData_ShouldReturnHoneypotDefaultInputValue_WhenInputNamesCollectionCountIsLessThanTwo() { // Arrange var worker = new HoneypotWorker(); Honeypot.InputNames.Clear(); //Act HoneypotData token = worker.GetHoneypotData(MvcHelper.GetHttpContext()); //Assert Assert.Equal(token.InputNameValue, HoneypotData.DefaultFieldName); }
public void GetHoneypotData_ShouldReturnRandomInputName_WhenInputNamesCollectionCountIsGreaterThanOne() { // Arrange var worker = new HoneypotWorker(); Honeypot.InputNames.Add("test"); Honeypot.InputNames.Add("name"); // Act HoneypotData token = worker.GetHoneypotData(MvcHelper.GetHttpContext()); // Assert Assert.NotEqual(token.InputNameValue, HoneypotData.DefaultFieldName); }
public void IsBot_ShouldBeTrue_IfHpInputNameIsInFormAndHasValue() { // Arrang Honeypot.InputNames.Clear(); Honeypot.CustomRules.Clear(); var worker = new HoneypotWorker(); var token = new HoneypotData(HoneypotData.DefaultFieldName); var serializer = new HoneypotDataSerializer(); var form = new NameValueCollection { { "FirstName", "Jon" }, { HoneypotData.FormKeyFieldName, serializer.Serialize(token) }, {token.InputNameValue, "I am a bot"} }; // Act bool isBot = worker.IsBot(MvcHelper.GetHttpContext(form)); // Assert Assert.True(isBot); }
public void ValidateRules_ShouldReturnTrue_WhenThereAreNoRules() { // Arrange var worker = new HoneypotWorker(); Honeypot.CustomRules.Clear(); //Act bool isValid = worker.ValidateRules(new NameValueCollection()); // Assert Assert.True(isValid); }
public void ValidateRules_ShouldReturnTrue_WhenAllRulesPass() { // Arrange var worker = new HoneypotWorker(); Honeypot.CustomRules.Clear(); Func<NameValueCollection, bool> rule = (form) => false; Honeypot.CustomRules.Add(rule); //Act bool isValid = worker.ValidateRules(new NameValueCollection()); // Assert Assert.True(isValid); }
public void ValidateRules_ShouldReturnFalse_WhenAnyRuleFails() { // Arrange var worker = new HoneypotWorker(); Honeypot.CustomRules.Clear(); Func<NameValueCollection, bool> passingRule = (form) => false; Func<NameValueCollection, bool> failingRule = (form) => true; Honeypot.CustomRules.Add(passingRule); Honeypot.CustomRules.Add(failingRule); Honeypot.CustomRules.Add(passingRule); //Act bool isValid = worker.ValidateRules(new NameValueCollection()); // Assert Assert.False(isValid); }
public void IsBot_ShouldReturnTrue_WhenValidateRulesReturnsFalse() { // Arrang Honeypot.InputNames.Clear(); var worker = new HoneypotWorker(); Honeypot.CustomRules.Clear(); var token = new HoneypotData(HoneypotData.DefaultFieldName); var serializer = new HoneypotDataSerializer(); var form = new NameValueCollection { { "FirstName", "Jon" }, { HoneypotData.FormKeyFieldName, serializer.Serialize(token) }, {token.InputNameValue, ""} }; Func<NameValueCollection, bool> failingRule = (f) => true; Honeypot.CustomRules.Add(failingRule); // Act bool isBot = worker.IsBot(MvcHelper.GetHttpContext(form)); // Assert Assert.True(isBot); }
public void IsBot_ShouldBeTrue_IfTokenInputIsNotInForm() { // Arrang var worker = new HoneypotWorker(); var form = new NameValueCollection { { "FirstName", "Jon" } }; // Act bool isBot = worker.IsBot(MvcHelper.GetHttpContext(form)); // Assert Assert.True(isBot); }