chatfilter: fix matching lt/gt
These are encoded as <lt> and <gt> and so require the patterns to match those, which is unintuitive
This commit is contained in:
@@ -320,7 +320,9 @@ public class ChatFilterPlugin extends Plugin
|
||||
String censorMessage(final String username, final String message)
|
||||
{
|
||||
String strippedMessage = jagexPrintableCharMatcher.retainFrom(message)
|
||||
.replace('\u00A0', ' ');
|
||||
.replace('\u00A0', ' ')
|
||||
.replaceAll("<lt>", "<")
|
||||
.replaceAll("<gt>", ">");
|
||||
String strippedAccents = stripAccents(strippedMessage);
|
||||
assert strippedMessage.length() == strippedAccents.length();
|
||||
|
||||
|
||||
@@ -453,4 +453,15 @@ public class ChatFilterPluginTest
|
||||
chatFilterPlugin.onScriptCallbackEvent(event);
|
||||
assertEquals(1, client.getIntStack()[client.getIntStackSize() - 3]); // not filtered
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLtGt()
|
||||
{
|
||||
when(chatFilterConfig.filteredWords()).thenReturn("f<ilte>r");
|
||||
|
||||
chatFilterPlugin.updateFilteredPatterns();
|
||||
|
||||
String message = chatFilterPlugin.censorMessage("Adam", "start f<lt>ilte<gt>r end");
|
||||
assertEquals("start ******** end", message);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user