diff --git a/src/org/thoughtcrime/securesms/logsubmit/util/Scrubber.java b/src/org/thoughtcrime/securesms/logsubmit/util/Scrubber.java index dc652367fc..d94d97df07 100644 --- a/src/org/thoughtcrime/securesms/logsubmit/util/Scrubber.java +++ b/src/org/thoughtcrime/securesms/logsubmit/util/Scrubber.java @@ -25,10 +25,15 @@ import java.util.regex.Pattern; */ public class Scrubber { private static final String TAG = Scrubber.class.getSimpleName(); - private static final Pattern E164_PATTERN = Pattern.compile("\\+\\d{10,15}"); + + private static final Pattern E164_PATTERN = Pattern.compile("\\+\\d{10,15}"); + private static final Pattern GROUPID_PATTERN = Pattern.compile("__textsecure_group__![^\\s]+"); + private static final Pattern EMAIL_PATTERN = Pattern.compile("[^\\s]+@[^\\s]+"); private static final Pattern[] DEFAULTS = new Pattern[] { - E164_PATTERN + E164_PATTERN, + GROUPID_PATTERN, + EMAIL_PATTERN }; private final Pattern[] patterns; diff --git a/test/unitTest/java/org/thoughtcrime/securesms/logsubmit/ScrubberTest.java b/test/unitTest/java/org/thoughtcrime/securesms/logsubmit/ScrubberTest.java new file mode 100644 index 0000000000..1578e26863 --- /dev/null +++ b/test/unitTest/java/org/thoughtcrime/securesms/logsubmit/ScrubberTest.java @@ -0,0 +1,57 @@ +package org.thoughtcrime.securesms.logsubmit; + +import org.junit.Test; +import org.thoughtcrime.securesms.logsubmit.util.Scrubber; + +import static org.junit.Assert.assertEquals; + +public class ScrubberTest { + + @Test + public void scrub_phoneNumber_solo() { + Scrubber scrubber = new Scrubber(); + String output = scrubber.scrub("+16101234567"); + + assertEquals("+*********67", output); + } + + @Test + public void scrub_phoneNumber_surrounded() { + Scrubber scrubber = new Scrubber(); + String output = scrubber.scrub("Spider-Man's phone number is +16101234567 -- isn't that crazy?"); + + assertEquals("Spider-Man's phone number is +*********67 -- isn't that crazy?", output); + } + + @Test + public void scrub_email_solo() { + Scrubber scrubber = new Scrubber(); + String output = scrubber.scrub("jonah@dailybugle.com"); + + assertEquals("j*****************om", output); + } + + @Test + public void scrub_email_surrounded() { + Scrubber scrubber = new Scrubber(); + String output = scrubber.scrub("Email tips to jonah@dailybugle.com -- it's your civic duty"); + + assertEquals("Email tips to j*****************om -- it's your civic duty", output); + } + + @Test + public void scrub_groupId_solo() { + Scrubber scrubber = new Scrubber(); + String output = scrubber.scrub("__textsecure_group__!abcdefg1234567890"); + + assertEquals("_***********************************90", output); + } + + @Test + public void scrub_groupId_surrounded() { + Scrubber scrubber = new Scrubber(); + String output = scrubber.scrub("The group id is __textsecure_group__!abcdefg1234567890 and don't forget it"); + + assertEquals("The group id is _***********************************90 and don't forget it", output); + } +}