From 87ec3f0bea3d5a9b38ec2cb6f8b5b4cf16684813 Mon Sep 17 00:00:00 2001 From: William Collishaw Date: Wed, 24 Jul 2019 13:06:31 -0600 Subject: [PATCH] emoji plugin: support nbsp in messages --- .../client/plugins/emojis/EmojiPlugin.java | 5 +++-- .../client/plugins/emojis/EmojiPluginTest.java | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java index 21eb1eab10..68b97817c3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java @@ -55,6 +55,7 @@ import net.runelite.client.util.ImageUtil; public class EmojiPlugin extends Plugin { private static final Pattern TAG_REGEXP = Pattern.compile("<[^>]*>"); + private static final Pattern WHITESPACE_REGEXP = Pattern.compile("[\\s\\u00A0]"); @Inject private Client client; @@ -166,9 +167,9 @@ public class EmojiPlugin extends Plugin } @Nullable - private String updateMessage(final String message) + String updateMessage(final String message) { - final String[] messageWords = message.split(" "); + final String[] messageWords = WHITESPACE_REGEXP.split(message); boolean editedMessage = false; for (int i = 0; i < messageWords.length; i++) diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/emojis/EmojiPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/emojis/EmojiPluginTest.java index 3427246946..5fd260b110 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/emojis/EmojiPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/emojis/EmojiPluginTest.java @@ -44,6 +44,8 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import org.mockito.runners.MockitoJUnitRunner; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; @RunWith(MockitoJUnitRunner.class) public class EmojiPluginTest @@ -113,4 +115,17 @@ public class EmojiPluginTest verify(messageNode).setRuneLiteFormatMessage(""); } + + @Test + public void testEmojiUpdateMessage() + { + String PARTY_POPPER = "'; + String OPEN_MOUTH = "'; + assertNull(emojiPlugin.updateMessage("@@@@@")); + assertEquals(PARTY_POPPER, emojiPlugin.updateMessage("@@@")); + assertEquals(PARTY_POPPER + ' ' + PARTY_POPPER, emojiPlugin.updateMessage("@@@ @@@")); + assertEquals(PARTY_POPPER + ' ' + OPEN_MOUTH, emojiPlugin.updateMessage("@@@\u00A0:O")); + assertEquals(PARTY_POPPER + ' ' + OPEN_MOUTH + ' ' + PARTY_POPPER, emojiPlugin.updateMessage("@@@\u00A0:O @@@")); + assertEquals(PARTY_POPPER + " Hello World " + PARTY_POPPER, emojiPlugin.updateMessage("@@@\u00A0Hello World\u00A0@@@")); + } } \ No newline at end of file