Merge branch 'master' of https://github.com/runelite/runelite
# Conflicts: # runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java # runelite-client/src/main/java/net/runelite/client/game/ItemMapping.java # runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java # runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java # runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java # runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListItem.java # runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java # runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/HitpointsDisplayStyle.java # runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTracker.java # runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ProgressBarComponent.java
This commit is contained in:
@@ -38,6 +38,7 @@ import java.applet.Applet;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
@@ -47,6 +48,8 @@ import java.util.Set;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.RuneLiteModule;
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.rs.ClientUpdateCheckMode;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
@@ -75,6 +78,7 @@ public class PluginManagerTest
|
||||
public Client client;
|
||||
|
||||
private Set<Class> pluginClasses;
|
||||
private Set<Class> configClasses;
|
||||
|
||||
@Before
|
||||
public void before() throws IOException
|
||||
@@ -85,8 +89,9 @@ public class PluginManagerTest
|
||||
|
||||
RuneLite.setInjector(injector);
|
||||
|
||||
// Find plugins we expect to have
|
||||
// Find plugins and configs we expect to have
|
||||
pluginClasses = new HashSet<>();
|
||||
configClasses = new HashSet<>();
|
||||
Set<ClassInfo> classes = ClassPath.from(getClass().getClassLoader()).getTopLevelClassesRecursive(PLUGIN_PACKAGE);
|
||||
for (ClassInfo classInfo : classes)
|
||||
{
|
||||
@@ -95,6 +100,12 @@ public class PluginManagerTest
|
||||
if (pluginDescriptor != null)
|
||||
{
|
||||
pluginClasses.add(clazz);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (Config.class.isAssignableFrom(clazz))
|
||||
{
|
||||
configClasses.add(clazz);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,4 +166,37 @@ public class PluginManagerTest
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ensureNoDuplicateConfigKeyNames()
|
||||
{
|
||||
for (final Class clazz : configClasses)
|
||||
{
|
||||
final Set<String> configKeyNames = new HashSet<>();
|
||||
|
||||
for (final Method method : clazz.getMethods())
|
||||
{
|
||||
if (!method.isDefault())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final ConfigItem annotation = method.getAnnotation(ConfigItem.class);
|
||||
|
||||
if (annotation == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final String configKeyName = annotation.keyName();
|
||||
|
||||
if (configKeyNames.contains(configKeyName))
|
||||
{
|
||||
throw new IllegalArgumentException("keyName " + configKeyName + " is duplicated in " + clazz);
|
||||
}
|
||||
|
||||
configKeyNames.add(configKeyName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Adam <Adam@sigterm.info>
|
||||
* Copyright (c) 2019, osrs-music-map <osrs-music-map@users.noreply.github.com>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -29,8 +30,11 @@ import com.google.inject.testing.fieldbinder.Bind;
|
||||
import com.google.inject.testing.fieldbinder.BoundFieldModule;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Player;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -49,6 +53,10 @@ public class ChatFilterPluginTest
|
||||
@Bind
|
||||
private ChatFilterConfig chatFilterConfig;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
private Player localPlayer;
|
||||
|
||||
@Inject
|
||||
private ChatFilterPlugin chatFilterPlugin;
|
||||
|
||||
@@ -60,6 +68,7 @@ public class ChatFilterPluginTest
|
||||
when(chatFilterConfig.filterType()).thenReturn(ChatFilterType.CENSOR_WORDS);
|
||||
when(chatFilterConfig.filteredWords()).thenReturn("");
|
||||
when(chatFilterConfig.filteredRegex()).thenReturn("");
|
||||
when(client.getLocalPlayer()).thenReturn(localPlayer);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -110,4 +119,51 @@ public class ChatFilterPluginTest
|
||||
chatFilterPlugin.updateFilteredPatterns();
|
||||
assertNull(chatFilterPlugin.censorMessage("te\u008Cst"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMessageFromFriendIsFiltered()
|
||||
{
|
||||
when(client.isFriended("Iron Mammal", false)).thenReturn(true);
|
||||
when(chatFilterConfig.filterFriends()).thenReturn(true);
|
||||
assertTrue(chatFilterPlugin.shouldFilterPlayerMessage("Iron Mammal"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMessageFromFriendIsNotFiltered()
|
||||
{
|
||||
when(client.isFriended("Iron Mammal", false)).thenReturn(true);
|
||||
when(chatFilterConfig.filterFriends()).thenReturn(false);
|
||||
assertFalse(chatFilterPlugin.shouldFilterPlayerMessage("Iron Mammal"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMessageFromClanIsFiltered()
|
||||
{
|
||||
when(client.isClanMember("B0aty")).thenReturn(true);
|
||||
when(chatFilterConfig.filterClan()).thenReturn(true);
|
||||
assertTrue(chatFilterPlugin.shouldFilterPlayerMessage("B0aty"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMessageFromClanIsNotFiltered()
|
||||
{
|
||||
when(client.isClanMember("B0aty")).thenReturn(true);
|
||||
when(chatFilterConfig.filterClan()).thenReturn(false);
|
||||
assertFalse(chatFilterPlugin.shouldFilterPlayerMessage("B0aty"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMessageFromSelfIsNotFiltered()
|
||||
{
|
||||
when(localPlayer.getName()).thenReturn("Swampletics");
|
||||
assertFalse(chatFilterPlugin.shouldFilterPlayerMessage("Swampletics"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMessageFromNonFriendNonClanIsFiltered()
|
||||
{
|
||||
when(client.isFriended("Woox", false)).thenReturn(false);
|
||||
when(client.isClanMember("Woox")).thenReturn(false);
|
||||
assertTrue(chatFilterPlugin.shouldFilterPlayerMessage("Woox"));
|
||||
}
|
||||
}
|
||||
@@ -29,13 +29,11 @@ import com.google.inject.testing.fieldbinder.Bind;
|
||||
import com.google.inject.testing.fieldbinder.BoundFieldModule;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -52,13 +50,16 @@ public class CookingPluginTest
|
||||
"You cook the karambwan. It looks delicious.",
|
||||
"You roast a lobster.",
|
||||
"You cook a bass.",
|
||||
"You squeeze the grapes into the jug. The wine begins to ferment.",
|
||||
"You successfully bake a tasty garden pie."
|
||||
};
|
||||
|
||||
@Inject
|
||||
CookingPlugin cookingPlugin;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
Client client;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
CookingConfig config;
|
||||
@@ -94,26 +95,4 @@ public class CookingPluginTest
|
||||
assertNotNull(cookingSession);
|
||||
assertEquals(COOKING_MESSAGES.length, cookingSession.getCookAmount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFermentTimerOnChatMessage()
|
||||
{
|
||||
when(config.fermentTimer()).thenReturn(true);
|
||||
ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", COOKING_MESSAGES[6], "", 0);
|
||||
cookingPlugin.onChatMessage(chatMessage);
|
||||
FermentTimerSession fermentTimerSession = cookingPlugin.getFermentTimerSession();
|
||||
|
||||
assertNotNull(fermentTimerSession);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFermentTimerOnChatMessage_pluginDisabled()
|
||||
{
|
||||
when(config.fermentTimer()).thenReturn(false);
|
||||
ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", COOKING_MESSAGES[6], "", 0);
|
||||
cookingPlugin.onChatMessage(chatMessage);
|
||||
FermentTimerSession fermentTimerSession = cookingPlugin.getFermentTimerSession();
|
||||
|
||||
assertNull(fermentTimerSession);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user