keyremapping: add test for typing mode change
This commit is contained in:
@@ -27,9 +27,12 @@ package net.runelite.client.plugins.keyremapping;
|
|||||||
import com.google.inject.Guice;
|
import com.google.inject.Guice;
|
||||||
import com.google.inject.testing.fieldbinder.Bind;
|
import com.google.inject.testing.fieldbinder.Bind;
|
||||||
import com.google.inject.testing.fieldbinder.BoundFieldModule;
|
import com.google.inject.testing.fieldbinder.BoundFieldModule;
|
||||||
|
import java.awt.event.KeyEvent;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
|
import net.runelite.api.GameState;
|
||||||
|
import net.runelite.client.config.ModifierlessKeybind;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -50,6 +53,10 @@ public class KeyRemappingListenerTest
|
|||||||
@Bind
|
@Bind
|
||||||
private Client client;
|
private Client client;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
@Bind
|
||||||
|
private KeyRemappingPlugin keyRemappingPlugin;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
@Bind
|
@Bind
|
||||||
private KeyRemappingConfig keyRemappingConfig;
|
private KeyRemappingConfig keyRemappingConfig;
|
||||||
@@ -58,6 +65,33 @@ public class KeyRemappingListenerTest
|
|||||||
public void setUp()
|
public void setUp()
|
||||||
{
|
{
|
||||||
Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
|
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
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user