From 89a2c870ce5222a1f0b8c0630f834f0fdcf7a25a Mon Sep 17 00:00:00 2001 From: Tux Date: Thu, 19 May 2016 17:36:31 -0600 Subject: [PATCH] Better unit tests for Chat API diff --git a/chat/src/test/java/net/md_5/bungee/api/chat/TranslatableComponentTest.java b/chat/src/test/java/net/md_5/bungee/api/chat/TranslatableComponentTest.java index 453d375..1a2ffd0 100644 --- a/chat/src/test/java/net/md_5/bungee/api/chat/TranslatableComponentTest.java +++ b/chat/src/test/java/net/md_5/bungee/api/chat/TranslatableComponentTest.java @@ -3,6 +3,8 @@ package net.md_5.bungee.api.chat; import net.md_5.bungee.api.chat.TranslatableComponent; import org.junit.Test; +import java.util.List; + import static org.junit.Assert.assertEquals; public class TranslatableComponentTest @@ -15,4 +17,25 @@ public class TranslatableComponentTest assertEquals( "Test string with 2 placeholders: aoeu", testComponent.toPlainText() ); assertEquals( "§fTest string with §f2§f placeholders: §faoeu", testComponent.toLegacyText() ); } + + @Test + public void testDuplicateNullWithDoesntThrowException() { + TranslatableComponent component = new TranslatableComponent("Test") { + @Override + public List getExtra() { + return null; + } + }; + + TranslatableComponent copy = new TranslatableComponent(component); + // The fact that we don't throw an exception means it's working as intended. + } + + @Test + public void testEscapedPercentInPlainText() + { + TranslatableComponent testComponent = new TranslatableComponent( "Test string with %% sign" ); + assertEquals( "Test string with % sign", testComponent.toPlainText() ); + assertEquals( "§fTest string with §f%§f sign", testComponent.toLegacyText() ); + } } diff --git a/proxy/src/test/java/net/md_5/bungee/chat/ComponentsTest.java b/proxy/src/test/java/net/md_5/bungee/chat/ComponentsTest.java index 004a2b7..f34eb3d 100644 --- a/proxy/src/test/java/net/md_5/bungee/chat/ComponentsTest.java +++ b/proxy/src/test/java/net/md_5/bungee/chat/ComponentsTest.java @@ -123,6 +123,26 @@ public class ComponentsTest Assert.assertEquals( eventRetention[1].getClickEvent(), testClickEvent ); } + @Test + public void testBuilderSpecialFormatting() + { + BaseComponent[] components = new ComponentBuilder( "Hello " ) + .bold(true).underlined(true).italic(true).strikethrough(true).obfuscated(true) + .append("World").underlined(false).strikethrough(false).create(); + + Assert.assertTrue( components[0].isBold() ); + Assert.assertTrue( components[0].isUnderlined() ); + Assert.assertTrue( components[0].isItalic() ); + Assert.assertTrue( components[0].isStrikethrough() ); + Assert.assertTrue( components[0].isObfuscated() ); + + Assert.assertTrue( components[1].isBold() ); + Assert.assertFalse( components[1].isUnderlined() ); + Assert.assertTrue( components[1].isItalic() ); + Assert.assertFalse( components[1].isStrikethrough() ); + Assert.assertTrue( components[1].isObfuscated() ); + } + @Test(expected = IllegalArgumentException.class) public void testLoopSimple() { -- 2.8.3