keyremapping: add test for typing mode change

This commit is contained in:
Adam
2020-03-22 11:17:21 -04:00
parent 203ecce4db
commit 0ee189cf9d

View File

@@ -27,9 +27,12 @@ package net.runelite.client.plugins.keyremapping;
import com.google.inject.Guice;
import com.google.inject.testing.fieldbinder.Bind;
import com.google.inject.testing.fieldbinder.BoundFieldModule;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.client.config.ModifierlessKeybind;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -50,6 +53,10 @@ public class KeyRemappingListenerTest
@Bind
private Client client;
@Mock
@Bind
private KeyRemappingPlugin keyRemappingPlugin;
@Mock
@Bind
private KeyRemappingConfig keyRemappingConfig;
@@ -58,6 +65,33 @@ public class KeyRemappingListenerTest
public void setUp()
{
Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
when(client.getGameState()).thenReturn(GameState.LOGGED_IN);
}
@Test
public void testTypingStateChange()
{
when(keyRemappingConfig.cameraRemap()).thenReturn(true);
when(keyRemappingConfig.up()).thenReturn(new ModifierlessKeybind(KeyEvent.VK_W, 0));
when(keyRemappingConfig.down()).thenReturn(new ModifierlessKeybind(KeyEvent.VK_S, 0));
when(keyRemappingConfig.left()).thenReturn(new ModifierlessKeybind(KeyEvent.VK_A, 0));
when(keyRemappingConfig.right()).thenReturn(new ModifierlessKeybind(KeyEvent.VK_D, 0));
when(keyRemappingPlugin.chatboxFocused()).thenReturn(true);
KeyEvent event = mock(KeyEvent.class);
when(event.getKeyCode()).thenReturn(KeyEvent.VK_D);
when(event.getExtendedKeyCode()).thenReturn(KeyEvent.VK_D); // for keybind matches()
keyRemappingListener.keyPressed(event);
verify(event).setKeyCode(KeyEvent.VK_RIGHT);
// with the plugin now in typing mode, previously pressed and remapped keys should still be mapped
// on key release regardless
when(keyRemappingPlugin.isTyping()).thenReturn(true);
event = mock(KeyEvent.class);
when(event.getKeyCode()).thenReturn(KeyEvent.VK_D);
keyRemappingListener.keyReleased(event);
verify(event).setKeyCode(KeyEvent.VK_RIGHT);
}
@Test