public async Task QuoteAsync([Remainder] string quote = null) { await Context.Message.DeleteAsync(); if (quote != null) { if (!ProfanityFilter.HasProfanity(quote)) { var dbCon = DBConnection.Instance(); dbCon.DatabaseName = BotConfig.Load().DatabaseName; if (dbCon.IsConnect()) { var message = await Context.Channel.SendMessageAsync("Your quote has been updated successfully."); await Delete.DeleteMessage(message); await UserProfile.UpdateUserQuoteAsync(Context.User.Id, quote, dbCon); dbCon.Close(); } } } else { var message = await Context.Channel.SendMessageAsync("Correct format of this command is `!quote <quote_message>`, for example using mention `!quote 'Most people go through life trying not to die, I go through life trying to live.'`."); await Delete.DeleteMessage(message); } }
public async Task FactAsync([Remainder] string fact = null) { await Context.Message.DeleteAsync(); if (fact != null) { if (!ProfanityFilter.HasProfanity(fact)) { var dbCon = DBConnection.Instance(); dbCon.DatabaseName = BotConfig.Load().DatabaseName; if (dbCon.IsConnect()) { var message = await Context.Channel.SendMessageAsync("Your fact has been updated successfully."); await Delete.DeleteMessage(message); await UserProfile.UpdateUserFactAsync(Context.User.Id, fact, dbCon); dbCon.Close(); } } } else { var message = await Context.Channel.SendMessageAsync("Correct format of this command is `!fact <fact_message>`, for example using mention `!quote Birds have wings.`."); await Delete.DeleteMessage(message); } }
public async Task BioAsync([Remainder] string bio = null) { await Context.Message.DeleteAsync(); if (bio != null) { if (!ProfanityFilter.HasProfanity(bio)) { var dbCon = DBConnection.Instance(); dbCon.DatabaseName = BotConfig.Load().DatabaseName; if (dbCon.IsConnect()) { var message = await Context.Channel.SendMessageAsync("Your bio has been updated successfully."); await Delete.DeleteMessage(message); await UserProfile.UpdateUserBioAsync(Context.User.Id, bio, dbCon); dbCon.Close(); } } } else { var message = await Context.Channel.SendMessageAsync("Correct format of this command is `!bio <bio_message>`, for example using mention `!bio A software engineer from London.`."); await Delete.DeleteMessage(message); } }
protected void HandleChannelMessage(RelayUser user, string channel, string message) { string[] parts = message.SplitSpaces(3); string rawCmd = parts[0].ToLower(); bool opchat = OpChannels.CaselessContains(channel); if (HandleWhoCommand(user, channel, rawCmd, opchat)) { return; } if (rawCmd.CaselessEq(Server.Config.IRCCommandPrefix)) { if (!HandleChannelCommand(user, channel, message, parts)) { return; } } if (opchat) { Logger.Log(LogType.RelayChat, "(OPs): ({0}) {1}: {2}", RelayName, user.Nick, message); Chat.MessageOps(string.Format("To Ops &f-&I({0}) {1}&f- {2}", RelayName, user.Nick, Server.Config.ProfanityFiltering ? ProfanityFilter.Parse(message) : message)); } else { Logger.Log(LogType.RelayChat, "({0}) {1}: {2}", RelayName, user.Nick, message); MessageInGame(user.Nick, string.Format("&I({0}) {1}: &f{2}", RelayName, user.Nick, Server.Config.ProfanityFiltering ? ProfanityFilter.Parse(message) : message)); } }
public string GetResponse() { string receivedstring = ""; string receivedchar = ""; int recv = 0; byte[] receivedata = new byte[1]; ASCIIEncoding ascii = new ASCIIEncoding(); do { // if this socket isnt Connected anymore, then just return -1 if (socket.Handle.ToString() == "-1") { return(null); } try { // reset the one byte buffer for the next character receivedata[0] = 0; // get next character, a zero means there was a disconnect from the client recv = socket.Receive(receivedata); } catch { return(null); } receivedchar = ascii.GetString(receivedata, 0, receivedata.Length); // Handle backspace or empty characters if ((receivedchar == "\x08" && receivedstring.Length > 0)) { receivedstring = receivedstring.Substring(0, receivedstring.Length - 1); } // Keep building the command string if we havent hit a CR or LF yet if ((receivedchar != "\r" && receivedchar != "\n" && receivedchar != "\x08")) { receivedstring = receivedstring + receivedchar; } // Client disconnect is signalled by a zero if (receivedchar.Substring(0, 1).ToCharArray()[0] == 0) { Lib.Disco(this, "client disconnected"); //break; return(null); } // Bail and return the command if we hit a newline character } while (receivedchar != "\n"); // Remove all leading and trailing spaces from the string receivedstring = receivedstring.Trim(); // reset ansi colors when carriage return is detected coming from the user Send(Lib.Ansireset); // Filter the player text ProfanityFilter.FilterMessage(ref receivedstring, this); return(receivedstring); }
public void IsProfanity_TermContainsProhibitedTerm_ReturnsTrue() { var filter = new ProfanityFilter(); filter.Terms.Prohibited.Add("blue"); Assert.True(filter.IsProfanity("blue")); }
public void StringContainsProfanityReturnsSwearWordForSentenceContainingANaughtyWordForPartialWordMatch() { var filter = new ProfanityFilter(); var swearWord = filter.StringContainsFirstProfanity("Mary had a little shitty lamb"); Assert.AreEqual("shitty", swearWord); }
public void ProfanityCheck_GetProfanity_Extensive() { var repo = new Repository <BadWord>(resolver.Resolve <IDataContext>()); var result = ProfanityFilter.GetProfanity(null, null); Assert.Null(result); var badWord = "panty"; var checkPhrase = "She was whereing Panty."; result = ProfanityFilter.GetProfanity(checkPhrase, repo.List()); Assert.Equal(result, badWord); checkPhrase = "panty well"; result = ProfanityFilter.GetProfanity(checkPhrase, repo.List()); Assert.Equal(result, badWord); checkPhrase = " panty well"; result = ProfanityFilter.GetProfanity(checkPhrase, repo.List()); Assert.Equal(result, badWord); checkPhrase = "panty"; result = ProfanityFilter.GetProfanity(checkPhrase, repo.List()); Assert.Equal(result, badWord); checkPhrase = "panty."; result = ProfanityFilter.GetProfanity(checkPhrase, repo.List()); Assert.Equal(result, badWord); checkPhrase = "$panty$"; result = ProfanityFilter.GetProfanity(checkPhrase, repo.List()); Assert.True(result.Contains(badWord)); }
public void ContainsProfanityReturnsFalseWhenProfanityIsAaa() { var filter = new ProfanityFilter(); var result = filter.ContainsProfanity("aaa"); Assert.IsFalse(result); }
public void GetCompleteWordReturnsNullIfWordNotFound() { var filter = new ProfanityFilter(); var result = filter.GetCompleteWord("I am a banana and I like to jump.", "c**t"); Assert.IsNull(result); }
private bool ContainsProfanity(ProfanityFilter profanityFilter, string message) { // Normalize message to lowercase and split into array of words. var messageWords = message.ToLower().Split(" "); var bannedWords = profanityFilter.BannedWords.Select(w => w.Word).ToList(); // Check for default banned words if UserDefaultList enabled. if (profanityFilter.UseDefaultList) { bannedWords.AddRange(_defaultBannedWords); } foreach (var word in messageWords) { foreach (var bannedWord in bannedWords) { if (word == bannedWord) { return(true); } } } return(false); }
public void ContainsProfanityReturnsTrueWhenProfanityExists() { var filter = new ProfanityFilter(); var result = filter.ContainsProfanity("Scunthorpe"); Assert.IsTrue(result); }
public void StringContainsProfanityReturnsFirstSwearWordForSentenceContainingMultipleWearWordsForMixedCase() { var filter = new ProfanityFilter(); var swearWord = filter.StringContainsFirstProfanity("Mary had a little ShIt lamb who was a little F****r."); Assert.AreEqual("shit", swearWord); }
public void ContainsProfanity_InputContainsNoProhibitedTerms_ReturnsFalse() { var filter = new ProfanityFilter(); var result = filter.ContainsProfanity("Ireland"); Assert.False(result); }
public void ContainsProfanityReturnsFalseIfNullOrEmptyInputString(string input) { var filter = new ProfanityFilter(); var result = filter.ContainsProfanity(input); Assert.IsFalse(result); }
public void StartUp() { Console.WriteLine("StartUp()"); if (!_setupRun) { Console.WriteLine("Setting up"); string rootPath = TestConfig.GetConfig().GetRipleyServerPath(); BBC.Dna.AppContext.OnDnaStartup(rootPath); //Create the mocked inputcontext Mockery mock = new Mockery(); _context = DnaMockery.CreateDatabaseInputContext(); // Create a mocked site for the context ISite mockedSite = DnaMockery.CreateMockedSite(_context, 1, "h2g2", "h2g2", true, "comment"); Stub.On(_context).GetProperty("CurrentSite").Will(Return.Value(mockedSite)); Stub.On(mockedSite).GetProperty("ModClassID").Will(Return.Value(1)); Stub.On(_context).Method("FileCacheGetItem").Will(Return.Value(false)); Stub.On(_context).Method("FileCachePutItem").Will(Return.Value(false)); // Initialise the profanities object var p = new ProfanityFilter(DnaMockery.CreateDatabaseReaderCreator(), DnaDiagnostics.Default, CacheFactory.GetCacheManager(), null, null); BBC.Dna.User user = new BBC.Dna.User(_context); Stub.On(_context).GetProperty("ViewingUser").Will(Return.Value(user)); _setupRun = true; } Console.WriteLine("Finished StartUp()"); }
public void GetCompleteWordReturnsNullIfNullInputString() { var filter = new ProfanityFilter(); var result = filter.GetCompleteWord(null, "c**t"); Assert.IsNull(result); }
public void DetectAllProfanitiesReturnsNulListForEmptyInput() { var filter = new ProfanityFilter(); var swearList = filter.DetectAllProfanities(null); Assert.AreEqual(0, swearList.Count); }
/// <summary> /// Returns validated query string for GET method or null. /// </summary> /// <returns></returns> private string ValidateInputForGet(string parameterName) { // do not return anything on empty input if (!Request.Query.ContainsKey(parameterName)) { return(null); } var userInput = Request.Query[parameterName][0]; // Check null or spaces or empty if (string.IsNullOrEmpty(userInput) || string.IsNullOrWhiteSpace(userInput)) { return(null); } userInput = userInput.Trim(); // Check minimal length if (userInput.Length < MINIMAL_WORD_LENGTH + 1) { return(null); } // let's only serve alphanumeric for now. if (ProfanityFilter.AllCharactersAllowed(userInput)) { return(userInput); } return(null); }
public void GetProfanities_InputIsNull_ReturnsEmptyCollection() { var filter = new ProfanityFilter(); var swearList = filter.GetProfanities(null); Assert.Equal(0, swearList.Count); }
public void IsProfanity_TermIsPermittedAndMixedCase_ReturnsFalse() { var filter = new ProfanityFilter(); filter.Terms.Permitted.Add("shitty"); Assert.False(filter.IsProfanity("ShiTty")); }
public void IsProfanity_TermIsProhibitedAndPermitted_ReturnsFalse() { var filter = new ProfanityFilter(); filter.Terms.Permitted.Add("shitty"); Assert.False(filter.IsProfanity("shitty")); }
public void ContainsProfanityReturnsFalseWhenProfanityDoesNotExist() { var filter = new ProfanityFilter(); var result = filter.ContainsProfanity("Ireland"); Assert.IsFalse(result); }
public void ContainsProfanityReturnsTrueWhenProfanityIsADollarDollar() { var filter = new ProfanityFilter(); var result = filter.ContainsProfanity("a$$"); Assert.IsTrue(result); }
public void ContainsProfanityReturnsTrueWhenMultipleProfanitiesExist() { var filter = new ProfanityFilter(); var result = filter.ContainsProfanity("Scuntarsefuckhorpe"); Assert.IsTrue(result); }
public void StringContainsProfanityReturnsEmptyStringForNullInput() { var filter = new ProfanityFilter(); var swearWord = filter.StringContainsFirstProfanity(null); Assert.AreEqual(string.Empty, swearWord); }
public void DetectAllProfanitiesForEmptyString() { var filter = new ProfanityFilter(); var swearList = filter.DetectAllProfanities("", true); Assert.AreEqual(0, swearList.Count); }
public void Censor_InputIsEmptyAndAlternateReplacementCharProvided_ReturnsCensoredString() { var filter = new ProfanityFilter(); var result = filter.Censor("", '@'); const string expected = ""; Assert.Equal(expected, result); }
public void DetectAllProfanitiesMultipleScunthorpes() { var filter = new ProfanityFilter(); var swearList = filter.DetectAllProfanities("Scunthorpe Scunthorpe", true); Assert.AreEqual(0, swearList.Count); }
public void DetectAllProfanitiesScunthorpePenistone() { var filter = new ProfanityFilter(); var swearList = filter.DetectAllProfanities("ScUnThOrPePeNiStOnE", true); Assert.AreEqual(0, swearList.Count); }
public void DetectAllProfanitiesReturns1SwearPhrase() { var filter = new ProfanityFilter(); var swearList = filter.DetectAllProfanities("2 girls 1 cup is my favourite video"); Assert.AreEqual(1, swearList.Count); Assert.AreEqual("2 girls 1 cup", swearList[0]); }
public void StartUp() { Statistics.InitialiseIfEmpty(null,false); SnapshotInitialisation.RestoreFromSnapshot(); ICacheManager groupsCache = new StaticCacheManager(); var g = new UserGroups(DnaMockery.CreateDatabaseReaderCreator(), null, groupsCache, null, null); var p = new ProfanityFilter(DnaMockery.CreateDatabaseReaderCreator(), null, groupsCache, null, null); var b = new BannedEmails(DnaMockery.CreateDatabaseReaderCreator(), null, groupsCache, null, null); }
protected void Application_Start(object sender, EventArgs e) { //System.Diagnostics.Debugger.Launch(); if (ConfigurationManager.AppSettings["MaintenanceMode"] == "1") {//do nothing if in maintenance return; } Statistics.InitialiseIfEmpty(null, false); dnaDiagnostics = new DnaDiagnostics(RequestIdGenerator.GetNextRequestId(), DateTime.Now); connectionString = ConfigurationManager.ConnectionStrings["Database"].ConnectionString; readerCreator = new DnaDataReaderCreator(connectionString, dnaDiagnostics); try { emailServerAddress = ConfigurationManager.AppSettings["EmailServer"]; } catch { dnaDiagnostics.WriteWarningToLog("BBC.Dna.Services.Application_Start", "Unable to find config email server address - no emails will be sent!"); } try { fileCacheFolder = ConfigurationManager.AppSettings["FileCacheFolder"]; } catch { fileCacheFolder = Environment.GetEnvironmentVariable("Temp"); dnaDiagnostics.WriteWarningToLog("BBC.Dna.Services.Application_Start", "Unable to find config file cache folder - Defaulting to the system temp folder!"); } ICacheManager cacheManager = null; try { cacheManager = CacheFactory.GetCacheManager("Memcached"); } catch (Exception error) { dnaDiagnostics.WriteWarningToLog("BBC.Dna.Services.Application_Start", "Unable to use memcached cachemanager - falling back to static inmemory"); dnaDiagnostics.WriteExceptionToLog(error); cacheManager = new StaticCacheManager(); } siteList = new SiteList(readerCreator, dnaDiagnostics, cacheManager, null, null);//no sending signals from here var bannedEmails = new BannedEmails(readerCreator, dnaDiagnostics, cacheManager, null, null);//no sending signals from here var userGroups = new UserGroups(readerCreator, dnaDiagnostics, cacheManager, null, null);//no sending signals from here var profanityFilter = new ProfanityFilter(readerCreator, dnaDiagnostics, cacheManager, null, null);//no sending signals from here var moderationClasses = new ModerationClassListCache(readerCreator, dnaDiagnostics, cacheManager, null, null);//no sending signals from here BBC.Dna.Objects.SmileyTranslator.LoadSmileys(readerCreator); }
public void StartUp() { SnapshotInitialisation.RestoreFromSnapshot(); Statistics.InitialiseIfEmpty(null, false); using (FullInputContext inputcontext = new FullInputContext("")) { var p = new ProfanityFilter(DnaMockery.CreateDatabaseReaderCreator(), null, CacheFactory.GetCacheManager(), null, null); var b = new BannedEmails(DnaMockery.CreateDatabaseReaderCreator(), null, CacheFactory.GetCacheManager(), null, null); var g = new UserGroups(DnaMockery.CreateDatabaseReaderCreator(), null, CacheFactory.GetCacheManager(), null, null); _siteList = SiteList.GetSiteList(); site = _siteList.GetSite("h2g2"); site.IsEmergencyClosed = false; _ratings = new Reviews(inputcontext.dnaDiagnostics, inputcontext.ReaderCreator, CacheFactory.GetCacheManager(), _siteList); } }
public void AddRecentSearchTests() { string rootPath = TestConfig.GetConfig().GetRipleyServerPath(); BBC.Dna.AppContext.OnDnaStartup(rootPath); Console.WriteLine("Before RecentSearch - AddRecentSearchTests"); //Create the mocked inputcontext Mockery mock = new Mockery(); IInputContext context = DnaMockery.CreateDatabaseInputContext(); Stub.On(context).Method("GetParamIntOrZero").WithAnyArguments().Will(Return.Value(0)); // Create a mocked site for the context ISite mockedSite = DnaMockery.CreateMockedSite(context, 70, "mbiplayer", "mbiplayer", true, "comment");//changed to miss cache Stub.On(context).GetProperty("CurrentSite").Will(Return.Value(mockedSite)); Stub.On(context).Method("DoesParamExist").With("forumid", "forumid").Will(Return.Value(false)); Stub.On(mockedSite).GetProperty("ModClassID").Will(Return.Value(1)); BBC.Dna.User user = new BBC.Dna.User(context); Stub.On(context).GetProperty("ViewingUser").Will(Return.Value(user)); Stub.On(context).GetProperty("CurrentSite").Will(Return.Value(mockedSite)); // Initialise the profanities object var p = new ProfanityFilter(DnaMockery.CreateDatabaseReaderCreator(), DnaDiagnostics.Default, CacheFactory.GetCacheManager(), null, null); RecentSearch recentsearch = new RecentSearch(context); Assert.IsTrue(recentsearch.AddSearchTerm("test article", RecentSearch.SEARCHTYPE.ARTICLE),"Adding valid artical search"); Assert.IsTrue(recentsearch.AddSearchTerm("test forum", RecentSearch.SEARCHTYPE.FORUM), "Adding valid forum search"); Assert.IsFalse(recentsearch.AddSearchTerm("This contains the profanity f**k", RecentSearch.SEARCHTYPE.ARTICLE), "Failing to add search term with profanity"); Assert.IsFalse(recentsearch.AddSearchTerm("This contains the an email - [email protected]", RecentSearch.SEARCHTYPE.ARTICLE), "Failing to add search term with email"); recentsearch.ProcessRequest(); XmlElement xml = recentsearch.RootElement; Assert.IsTrue(xml.SelectSingleNode("RECENTSEARCHES") != null, "The xml is not generated correctly!!!"); DnaXmlValidator validator = new DnaXmlValidator(xml.InnerXml, _schemaUri); validator.Validate(); Console.WriteLine("after RecentSearch - AddRecentSearchTests"); }
public void StartUp() { SnapshotInitialisation.ForceRestore(); Statistics.InitialiseIfEmpty(); using (FullInputContext inputcontext = new FullInputContext("")) { _siteList = SiteList.GetSiteList(); site = _siteList.GetSite("h2g2"); _comments = new Comments(inputcontext.dnaDiagnostics, inputcontext.ReaderCreator, CacheFactory.GetCacheManager(), _siteList); ICacheManager groupsCache = new StaticCacheManager(); var g = new UserGroups(DnaMockery.CreateDatabaseReaderCreator(), null, groupsCache, null, null); var p = new ProfanityFilter(DnaMockery.CreateDatabaseReaderCreator(), null, groupsCache, null, null); var b = new BannedEmails(DnaMockery.CreateDatabaseReaderCreator(), null, groupsCache, null, null); } }
public void StartUp() { SnapshotInitialisation.RestoreFromSnapshot(); Statistics.InitialiseIfEmpty(null,false); Statistics.ResetCounters(); using (FullInputContext inputcontext = new FullInputContext("")) { using (IDnaDataReader reader = inputcontext.CreateDnaDataReader("")) {//force processpremod out... reader.ExecuteDEBUGONLY("delete from siteoptions where SiteID=1 and Name='ProcessPreMod'"); } _siteList = SiteList.GetSiteList(); site = _siteList.GetSite("h2g2"); _comments = new Comments(inputcontext.dnaDiagnostics, inputcontext.ReaderCreator, CacheFactory.GetCacheManager(), _siteList); var bannedEmails = new BannedEmails(inputcontext.ReaderCreator, inputcontext.dnaDiagnostics, CacheFactory.GetCacheManager(), null, null);//no sending signals from here var userGroups = new UserGroups(inputcontext.ReaderCreator, inputcontext.dnaDiagnostics, CacheFactory.GetCacheManager(), null, null);//no sending signals from here var profanityFilter = new ProfanityFilter(inputcontext.ReaderCreator, inputcontext.dnaDiagnostics, CacheFactory.GetCacheManager(), null, null);//no sending signals from here } }
public void InitialiseProfanities_EmptyDB_ReturnsEmptyObject() { var cache = _mocks.DynamicMock<ICacheManager>(); cache.Stub(x => x.Contains("")).Constraints(Is.Anything()).Return(false); var reader = _mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.Read()).Return(false); var creator = _mocks.DynamicMock<IDnaDataReaderCreator>(); creator.Stub(x => x.CreateDnaDataReader("getallprofanities")).Return(reader); var diag = _mocks.DynamicMock<IDnaDiagnostics>(); _mocks.ReplayAll(); var profanityObj = new ProfanityFilter(creator, diag, cache, null, null); Assert.AreEqual(0, ProfanityFilter.GetObject().GetObjectFromCache().ProfanityClasses.ModClassProfanities.Keys.Count); creator.AssertWasCalled(x => x.CreateDnaDataReader("getallprofanities")); }
public void InitialiseProfanities_ValidDB_ReturnsFilledObject() { var modclassId = new Queue<int>(); modclassId.Enqueue(1); modclassId.Enqueue(2); modclassId.Enqueue(2); var profanity = new Queue<string>(); profanity.Enqueue("hello"); profanity.Enqueue("hello1"); profanity.Enqueue("hello"); var refer = new Queue<byte>(); refer.Enqueue(1); refer.Enqueue(0); refer.Enqueue(1); var cache = _mocks.DynamicMock<ICacheManager>(); cache.Stub(x => x.Contains("")).Constraints(Is.Anything()).Return(false); var reader = _mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.Read()).Return(true).Repeat.Times(3); reader.Stub(x => x.GetInt32("ModClassID")).Return(0).WhenCalled(x => x.ReturnValue = modclassId.Dequeue()); reader.Stub(x => x.GetStringNullAsEmpty("Profanity")).Return("").WhenCalled(x => x.ReturnValue = profanity.Dequeue()); reader.Stub(x => x.GetByte("Refer")).Return(1).WhenCalled(x => x.ReturnValue = refer.Dequeue()); var creator = _mocks.DynamicMock<IDnaDataReaderCreator>(); creator.Stub(x => x.CreateDnaDataReader("getallprofanities")).Return(reader); var diag = _mocks.DynamicMock<IDnaDiagnostics>(); _mocks.ReplayAll(); var profanityObj = new ProfanityFilter(creator, diag, cache, null, null); Assert.AreEqual(2, profanityObj.GetObjectFromCache().ProfanityClasses.ModClassProfanities.Keys.Count); creator.AssertWasCalled(x => x.CreateDnaDataReader("getallprofanities")); }
public void GetTermsStats_GetsValidStats_ReturnsValidObject() { var cacheObj = GetProfanityCacheObject(); var cache = _mocks.DynamicMock<ICacheManager>(); cache.Stub(x => x.Contains(ProfanityFilter.GetCacheKey("LASTUPDATE"))).Return(false); cache.Stub(x => x.Contains(ProfanityFilter.GetCacheKey())).Return(true); cache.Stub(x => x.GetData(ProfanityFilter.GetCacheKey())).Return(cacheObj); var reader = _mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.Read()).Return(false); var creator = _mocks.DynamicMock<IDnaDataReaderCreator>(); creator.Stub(x => x.CreateDnaDataReader("getallprofanities")).Return(reader); var diag = _mocks.DynamicMock<IDnaDiagnostics>(); _mocks.ReplayAll(); var profanityObj = new ProfanityFilter(creator, diag, cache, null, null); var stats = profanityObj.GetStats(typeof(ProfanityFilter)); Assert.IsNotNull(stats); Assert.AreEqual(typeof(ProfanityFilter).AssemblyQualifiedName, stats.Name); foreach (var modclass in profanityObj.GetObjectFromCache().ProfanityClasses.ModClassProfanities) { Assert.AreEqual(modclass.Value.ProfanityList.Count.ToString(), stats.Values["ModClassID_" + modclass.Key.ToString() + "_ProfanityList"]); Assert.AreEqual(modclass.Value.ReferList.Count.ToString(), stats.Values["ModClassID_" + modclass.Key.ToString() + "_ReferList"]); } }
public void Test08GetUITemplateForValidationParamsWithProfanity() { Console.WriteLine("Before Test08GetUITemplateForValidationParamsWithProfanity"); //Create the mocked inputcontext Mockery mock = new Mockery(); IInputContext mockedInputContext = DnaMockery.CreateDatabaseInputContext(); //XmlDocument siteconfig = new XmlDocument(); //siteconfig.LoadXml("<SITECONFIG />"); ISite site = mock.NewMock<ISite>(); //Stub.On(site).GetProperty("SiteConfig").Will(Return.Value(siteconfig.FirstChild)); Stub.On(site).GetProperty("SiteID").Will(Return.Value(1)); Stub.On(site).GetProperty("ModClassID").Will(Return.Value(1)); BBC.Dna.User user = new BBC.Dna.User(mockedInputContext); Stub.On(mockedInputContext).GetProperty("ViewingUser").Will(Return.Value(user)); Stub.On(mockedInputContext).GetProperty("CurrentSite").Will(Return.Value(site)); // Create the site options for the new mocked site SiteOptionList siteOptionList = new SiteOptionList(); siteOptionList.CreateFromDatabase(DnaMockery.CreateDatabaseReaderCreator(), DnaDiagnostics.Default); siteOptionList.SetValueBool(1, "Forum", "EmailAddressFilter", true, DnaMockery.CreateDatabaseReaderCreator(), null); siteOptionList.SetValueBool(1, "General", "IsURLFiltered", true, DnaMockery.CreateDatabaseReaderCreator(), null); // Stub the call to the siteoption Stub.On(mockedInputContext).Method("GetSiteOptionValueBool").With("Forum", "EmailAddressFilter").Will(Return.Value(true)); // Stub the call to the siteoption Stub.On(mockedInputContext).Method("GetSiteOptionValueBool").With("General", "IsURLFiltered").Will(Return.Value(true)); // Initialise the profanities object var p = new ProfanityFilter(DnaMockery.CreateDatabaseReaderCreator(), DnaDiagnostics.Default, CacheFactory.GetCacheManager(), null, null); using (IDnaDataReader reader = mockedInputContext.CreateDnaDataReader("getuitemplate")) { Stub.On(mockedInputContext).Method("CreateDnaDataReader").With("getuitemplate").Will(Return.Value(reader)); // Create a new UITemplate object and get the list of fields UITemplate testUITemplate = new UITemplate(mockedInputContext); testUITemplate.UITemplateID = _createdUITemplateID; testUITemplate.LoadTemplate(); List<KeyValuePair<string, string>> parameters = new List<KeyValuePair<string, string>>(); KeyValuePair<string, string> subject = new KeyValuePair<string, string>("SUBJECT", "TestSubject"); parameters.Add(subject); KeyValuePair<string, string> description = new KeyValuePair<string, string>("Description", "TestDescription with f**k"); parameters.Add(description); testUITemplate.ProcessParameters(parameters); testUITemplate.Validate(); DnaXmlValidator validator = new DnaXmlValidator(testUITemplate.RootElement.InnerXml, _schemaUri); validator.Validate(); } Console.WriteLine("After Test08GetUITemplateForValidationParamsWithProfanity"); }
public void HandleSignal_CorrectSignal_ReturnsValidObject() { var signalType = "recache-terms"; var cacheObj = GetProfanityCacheObject(); var modclassId = new Queue<int>(); modclassId.Enqueue(1); modclassId.Enqueue(2); modclassId.Enqueue(2); var forumId = new Queue<int>(); forumId.Enqueue(1); forumId.Enqueue(2); forumId.Enqueue(2); var profanity = new Queue<string>(); profanity.Enqueue("hello"); profanity.Enqueue("hello1"); profanity.Enqueue("hello"); var refer = new Queue<byte>(); refer.Enqueue(1); refer.Enqueue(0); refer.Enqueue(1); var cache = _mocks.DynamicMock<ICacheManager>(); cache.Stub(x => x.Contains(ProfanityFilter.GetCacheKey("LASTUPDATE"))).Return(false).Repeat.Once(); cache.Stub(x => x.Contains(ProfanityFilter.GetCacheKey())).Return(true).Repeat.Once(); cache.Stub(x => x.GetData(ProfanityFilter.GetCacheKey())).Return(cacheObj).Repeat.Once(); var reader = _mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.Read()).Return(true).Repeat.Times(3); reader.Stub(x => x.GetInt32("ModClassID")).Return(0).WhenCalled(x => x.ReturnValue = modclassId.Dequeue()); reader.Stub(x => x.GetInt32("ForumID")).Return(0).WhenCalled(x => x.ReturnValue = forumId.Dequeue()); reader.Stub(x => x.GetStringNullAsEmpty("Profanity")).Return("").WhenCalled(x => x.ReturnValue = profanity.Dequeue()); reader.Stub(x => x.GetByte("Refer")).Return(1).WhenCalled(x => x.ReturnValue = refer.Dequeue()); var creator = _mocks.DynamicMock<IDnaDataReaderCreator>(); creator.Stub(x => x.CreateDnaDataReader("getallprofanities")).Return(reader); var diag = _mocks.DynamicMock<IDnaDiagnostics>(); _mocks.ReplayAll(); var profanityObj = new ProfanityFilter(creator, diag, cache, null, null); creator.AssertWasNotCalled(x => x.CreateDnaDataReader("getallprofanities")); Assert.AreEqual(cacheObj.ProfanityClasses.ModClassProfanities.Count, ProfanityFilter.GetObject().GetObjectFromCache().ProfanityClasses.ModClassProfanities.Keys.Count); Assert.AreEqual(cacheObj.ProfanityClasses.ForumProfanities.Count, ProfanityFilter.GetObject().GetObjectFromCache().ProfanityClasses.ForumProfanities.Keys.Count); Assert.IsTrue(profanityObj.HandleSignal(signalType, null)); creator.AssertWasCalled(x => x.CreateDnaDataReader("getallprofanities")); }
public void InitialiseProfanities_VersionInCache_ReturnsCachedObj() { var cacheObj = GetProfanityCacheObject(); var cache = _mocks.DynamicMock<ICacheManager>(); cache.Stub(x => x.Contains(ProfanityFilter.GetCacheKey("LASTUPDATE"))).Return(false); cache.Stub(x => x.Contains(ProfanityFilter.GetCacheKey())).Return(true); cache.Stub(x => x.GetData(ProfanityFilter.GetCacheKey())).Return(cacheObj); var reader = _mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.Read()).Return(false); var creator = _mocks.DynamicMock<IDnaDataReaderCreator>(); creator.Stub(x => x.CreateDnaDataReader("getallprofanities")).Return(reader); var diag = _mocks.DynamicMock<IDnaDiagnostics>(); _mocks.ReplayAll(); var profanityObj = new ProfanityFilter(creator, diag, cache, null, null); Assert.AreEqual(cacheObj.ProfanityClasses.ModClassProfanities.Count, ProfanityFilter.GetObject().GetObjectFromCache().ProfanityClasses.ModClassProfanities.Keys.Count); creator.AssertWasNotCalled(x => x.CreateDnaDataReader("getallprofanities")); }
/// <summary> /// Designed to be called once at application Start-up /// </summary> /// <param name="rootPath">The folder that's the root of the application</param> public static void OnDnaStartup(string rootPath) { #if DEBUG /************************************** * * * DEBUGGING FROM THE WORD GO! * * * **************************************/ // System.Diagnostics.Debugger.Launch(); #endif _appContext = new AppContext(rootPath); _dnaCacheManager = CacheFactory.GetCacheManager(); DnaDiagnostics.Initialise(TheAppContext.Config.InputLogFilePath, "DNALOG"); #if DEBUG DnaDiagnostics.WriteHeader("OnDnaStartup - DEBUG"); #else DnaDiagnostics.WriteHeader("OnDnaStartup - RELEASE"); #endif Statistics.InitialiseIfEmpty(/*TheAppContext*/); //load the smiley list SmileyTranslator.LoadSmileys(ReaderCreator); ICacheManager cacheMemcachedManager = null; try { cacheMemcachedManager = CacheFactory.GetCacheManager("Memcached"); } catch (Exception error) { DnaDiagnostics.Default.WriteWarningToLog("OnDnaStartup", "Unable to use memcached cachemanager - falling back to static inmemory"); DnaDiagnostics.Default.WriteExceptionToLog(error); cacheMemcachedManager = new StaticCacheManager(); } //new signal objects below here _appContext.TheSiteList = new SiteList(AppContext.ReaderCreator, DnaDiagnostics.Default, cacheMemcachedManager, TheAppContext._dnaConfig.RipleyServerAddresses, TheAppContext._dnaConfig.DotNetServerAddresses); var bannedEmails = new BannedEmails(AppContext.ReaderCreator, DnaDiagnostics.Default, cacheMemcachedManager, TheAppContext._dnaConfig.RipleyServerAddresses, TheAppContext._dnaConfig.DotNetServerAddresses); var userGroups = new UserGroups(AppContext.ReaderCreator, DnaDiagnostics.Default, cacheMemcachedManager, TheAppContext._dnaConfig.RipleyServerAddresses, TheAppContext._dnaConfig.DotNetServerAddresses); var profanityFilter = new ProfanityFilter(AppContext.ReaderCreator, DnaDiagnostics.Default, cacheMemcachedManager, TheAppContext._dnaConfig.RipleyServerAddresses, TheAppContext._dnaConfig.DotNetServerAddresses); var moderationClasses = new ModerationClassListCache(AppContext.ReaderCreator, DnaDiagnostics.Default, cacheMemcachedManager, TheAppContext._dnaConfig.RipleyServerAddresses, TheAppContext._dnaConfig.DotNetServerAddresses); // Setup the banned user agents list InitialiseBannedUserAgents(); }