abouttreesummaryrefslogcommitdiff
path: root/test/juloo.keyboard2/ModmapTest.java
blob: 3457c3b3c2fd59853a4e580ef137a049d04754e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package juloo.keyboard2;

import android.view.KeyEvent;
import juloo.keyboard2.*;
import org.junit.Test;
import static org.junit.Assert.*;

public class ModmapTest
{
  public ModmapTest() {}

  @Test
  public void test()
  {
    Modmap mm = new Modmap();
    mm.add(Modmap.M.Shift, KeyValue.getKeyByName("a"), KeyValue.getKeyByName("b"));
    mm.add(Modmap.M.Fn, KeyValue.getKeyByName("c"), KeyValue.getKeyByName("d"));
    Utils.apply(mm, "a", KeyValue.Modifier.SHIFT, "b");
    Utils.apply(mm, "a", KeyValue.Modifier.FN, "æ");
    Utils.apply(mm, "c", KeyValue.Modifier.FN, "d");
  }

  @Test
  public void keyevent_mappings()
  {
    Modmap mm = new Modmap();
    mm.add(Modmap.M.Ctrl, KeyValue.getKeyByName("љ"), KeyValue.getKeyByName("љ:q"));
    Utils.apply(mm, "a", KeyValue.Modifier.CTRL, KeyValue.getKeyByName("a").withKeyevent(29));
    Utils.apply(mm, "љ", KeyValue.Modifier.CTRL, KeyValue.getKeyByName("љ").withKeyevent(45));
  }

  static class Utils
  {
    static void apply(Modmap mm, String a, KeyValue.Modifier mod, String expected)
    {
      apply(mm, a, mod, KeyValue.getKeyByName(expected));
    }

    static void apply(Modmap mm, String a, KeyValue.Modifier mod, KeyValue expected)
    {
      KeyModifier.set_modmap(mm);
      KeyValue b = KeyModifier.modify(KeyValue.getKeyByName(a), mod);
      KeyModifier.set_modmap(null);
      assertEquals(b, expected);
    }
  }
}