source: josm/trunk/test/unit/org/openstreetmap/josm/tools/KeyboardUtilsTest.java@ 14026

Last change on this file since 14026 was 14026, checked in by Don-vip, 6 years ago

fix strange error observed when running JOSM from latest version of Eclipse:

  • java.lang.invoke.LambdaConversionException: Type mismatch for lambda argument 0: class java.lang.Object is not convertible to interface org.openstreetmap.josm.data.coor.ILatLon
  • Property svn:eol-style set to native
File size: 4.7 KB
RevLine 
[14012]1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.tools;
3
4import static org.junit.Assert.assertEquals;
5
[14017]6import java.awt.event.KeyEvent;
[14012]7import java.util.Arrays;
8import java.util.LinkedHashMap;
9import java.util.Locale;
10import java.util.Map;
11import java.util.Map.Entry;
12
13import org.junit.Rule;
14import org.junit.Test;
15import org.openstreetmap.josm.testutils.JOSMTestRules;
16
17import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
18
19/**
20 * Unit tests of {@link KeyboardUtils} class.
21 */
22public class KeyboardUtilsTest {
23 /**
24 * Initializes test.
25 */
26 @Rule
27 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
28 public JOSMTestRules rules = new JOSMTestRules().platform();
29
30 /**
31 * Checks that definition of extended characters is correct
32 */
33 @Test
34 public void testExtendedCharacters() {
35 Map<Integer, Character> map = new LinkedHashMap<>();
36 KeyboardUtils.addLatinCharacters(map);
37 KeyboardUtils.addSymbolCharacters(map);
38 KeyboardUtils.addArabicCharacters(map);
39 KeyboardUtils.addArmenianCharacters(map);
40 KeyboardUtils.addCyrillicCharacters(map);
41 KeyboardUtils.addGeorgianCharacters(map);
42 KeyboardUtils.addGreekCharacters(map);
43 KeyboardUtils.addHebrewCharacters(map);
44 KeyboardUtils.addJapaneseCharacters(map);
45 KeyboardUtils.addThaiCharacters(map);
46 for (Entry<Integer, Character> e : map.entrySet()) {
47 assertEquals(e.getKey().intValue(), KeyboardUtils.EXTENDED_KEYCODE_FLAG | (int) e.getValue());
48 }
49 }
50
51 /**
52 * Unit test of {@link KeyboardUtils#getCharactersForKey} - E00 character
53 */
54 @Test
[14026]55 public void testGetCharactersForKeyE00() {
[14017]56 char deadCircumflex = (char) KeyEvent.VK_DEAD_CIRCUMFLEX;
57 char deadGrave = (char) KeyEvent.VK_DEAD_GRAVE;
58 char deadCaron = (char) KeyEvent.VK_DEAD_CARON;
59 testgetCharactersForKeyE00("ar", 'ذ', '>', '`', deadGrave);
60 testgetCharactersForKeyE00("fr_FR", '²', '$', '`', deadGrave);
61 testgetCharactersForKeyE00("fr_CA", '#', '$', '/', '`', deadGrave);
62 testgetCharactersForKeyE00("sq", '\\', '`', deadGrave);
63 testgetCharactersForKeyE00("it", '\\', '`', deadGrave);
64 testgetCharactersForKeyE00("pt", '\\', '`', deadGrave);
65 testgetCharactersForKeyE00("pt_BR", '\'', '`', deadGrave);
66 testgetCharactersForKeyE00("de", deadCircumflex, '`', deadGrave);
67 testgetCharactersForKeyE00("cs", ';', '`', deadGrave);
68 testgetCharactersForKeyE00("he", '`', deadGrave);
69 testgetCharactersForKeyE00("hu", '0', '`', deadGrave);
70 testgetCharactersForKeyE00("pl", '`', deadGrave);
71 testgetCharactersForKeyE00("bs", '¸', '`', deadGrave);
72 testgetCharactersForKeyE00("hr", '¸', '`', deadGrave);
73 testgetCharactersForKeyE00("sl", '¸', '`', deadGrave);
74 testgetCharactersForKeyE00("sr", '¸', '`', deadGrave);
75 testgetCharactersForKeyE00("ro", ']', '`', deadGrave);
76 testgetCharactersForKeyE00("da", '½', '`', deadGrave);
77 testgetCharactersForKeyE00("fo", '½', '`', deadGrave);
78 testgetCharactersForKeyE00("nl", '@', '`', deadGrave);
79 testgetCharactersForKeyE00("et", deadCaron, '`', deadGrave);
80 testgetCharactersForKeyE00("is", '°', '`', deadGrave);
81 testgetCharactersForKeyE00("es", '|', '`', deadGrave);
82 testgetCharactersForKeyE00("es_ES", 'º', '`', deadGrave);
83 testgetCharactersForKeyE00("tr", '"', '*', '`', deadGrave);
84 testgetCharactersForKeyE00("de_LU", deadCircumflex, '²', '§', '`', deadGrave);
85 testgetCharactersForKeyE00("fr_LU", '$', '²', '§', '`', deadGrave);
86 testgetCharactersForKeyE00("fr_CH", '²', '$', '§', '`', deadGrave);
87 testgetCharactersForKeyE00("de_CH", deadCircumflex, '§', '`', deadGrave);
88 testgetCharactersForKeyE00("de_LI", deadCircumflex, '§', '`', deadGrave);
89 testgetCharactersForKeyE00("fi_FI", '§', '`', deadGrave);
90 testgetCharactersForKeyE00("sv_SE", '§', '`', deadGrave);
91 testgetCharactersForKeyE00("no_NO", '|', '`', deadGrave);
92 testgetCharactersForKeyE00("sv_NO", '|', '`', deadGrave);
[14012]93 }
94
95 private static void testgetCharactersForKeyE00(String locale, Character... expected) {
96 if (locale.contains("_")) {
97 String[] l = locale.split("_");
98 testgetCharactersForKeyE00(new Locale(l[0], l[1]), expected);
99 } else {
100 testgetCharactersForKeyE00(new Locale(locale), expected);
101 }
102 }
103
104 private static void testgetCharactersForKeyE00(Locale locale, Character... expected) {
105 assertEquals(Arrays.asList(expected), KeyboardUtils.getCharactersForKey('E', 0, locale));
106 }
107}
Note: See TracBrowser for help on using the repository browser.