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

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

fix unit tests

  • Property svn:eol-style set to native
File size: 5.4 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.tools;
3
4import static org.junit.Assert.assertEquals;
5
6import java.awt.event.KeyEvent;
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();
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
55 public void testGetCharactersForKeyE00() {
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 char deadCircumflex2 = 0x2C6;
60 char deadGrave2 = 0x2CB;
61 char deadCaron2 = 0x2C7;
62 testgetCharactersForKeyE00("ar", 'ذ', '>', '`', deadGrave, deadGrave2);
63 if (PlatformManager.isPlatformUnixoid()) {
64 testgetCharactersForKeyE00("fr_FR", '²', '$', 'œ', '`', deadGrave, deadGrave2);
65 } else {
66 testgetCharactersForKeyE00("fr_FR", '²', '$', '`', deadGrave, deadGrave2);
67 }
68 testgetCharactersForKeyE00("fr_CA", '#', '$', '/', '`', deadGrave, deadGrave2);
69 testgetCharactersForKeyE00("sq", '\\', '`', deadGrave, deadGrave2);
70 testgetCharactersForKeyE00("it", '\\', '`', deadGrave, deadGrave2);
71 testgetCharactersForKeyE00("pt", '\\', '`', deadGrave, deadGrave2);
72 testgetCharactersForKeyE00("pt_BR", '\'', '`', deadGrave, deadGrave2);
73 testgetCharactersForKeyE00("de", deadCircumflex, deadCircumflex2, '`', deadGrave, deadGrave2);
74 testgetCharactersForKeyE00("cs", ';', '`', deadGrave, deadGrave2);
75 testgetCharactersForKeyE00("he", '`', deadGrave, deadGrave2);
76 testgetCharactersForKeyE00("hu", '0', '`', deadGrave, deadGrave2);
77 testgetCharactersForKeyE00("pl", '`', deadGrave, deadGrave2);
78 testgetCharactersForKeyE00("bs", '¸', '`', deadGrave, deadGrave2);
79 testgetCharactersForKeyE00("hr", '¸', '`', deadGrave, deadGrave2);
80 testgetCharactersForKeyE00("sl", '¸', '`', deadGrave, deadGrave2);
81 testgetCharactersForKeyE00("sr", '¸', '`', deadGrave, deadGrave2);
82 testgetCharactersForKeyE00("ro", ']', '`', deadGrave, deadGrave2);
83 testgetCharactersForKeyE00("da", '½', '`', deadGrave, deadGrave2);
84 testgetCharactersForKeyE00("fo", '½', '`', deadGrave, deadGrave2);
85 testgetCharactersForKeyE00("nl", '@', '`', deadGrave, deadGrave2);
86 testgetCharactersForKeyE00("et", deadCaron, deadCaron2, '`', deadGrave, deadGrave2);
87 testgetCharactersForKeyE00("is", '°', '`', deadGrave, deadGrave2);
88 testgetCharactersForKeyE00("es", '|', '`', deadGrave, deadGrave2);
89 testgetCharactersForKeyE00("es_ES", 'º', '`', deadGrave, deadGrave2);
90 testgetCharactersForKeyE00("tr", '"', '*', '`', deadGrave, deadGrave2);
91 testgetCharactersForKeyE00("de_LU", deadCircumflex, deadCircumflex2, '²', '§', '`', deadGrave, deadGrave2);
92 testgetCharactersForKeyE00("fr_LU", '$', '²', '§', '`', deadGrave, deadGrave2);
93 testgetCharactersForKeyE00("fr_CH", '²', '$', '§', '`', deadGrave, deadGrave2);
94 testgetCharactersForKeyE00("de_CH", deadCircumflex, deadCircumflex2, '§', '`', deadGrave, deadGrave2);
95 testgetCharactersForKeyE00("de_LI", deadCircumflex, deadCircumflex2, '§', '`', deadGrave, deadGrave2);
96 testgetCharactersForKeyE00("fi_FI", '§', '`', deadGrave, deadGrave2);
97 testgetCharactersForKeyE00("sv_SE", '§', '`', deadGrave, deadGrave2);
98 testgetCharactersForKeyE00("no_NO", '|', '`', deadGrave, deadGrave2);
99 testgetCharactersForKeyE00("sv_NO", '|', '`', deadGrave, deadGrave2);
100 }
101
102 private static void testgetCharactersForKeyE00(String locale, Character... expected) {
103 if (locale.contains("_")) {
104 String[] l = locale.split("_");
105 testgetCharactersForKeyE00(new Locale(l[0], l[1]), expected);
106 } else {
107 testgetCharactersForKeyE00(new Locale(locale), expected);
108 }
109 }
110
111 private static void testgetCharactersForKeyE00(Locale locale, Character... expected) {
112 assertEquals(Arrays.asList(expected), KeyboardUtils.getCharactersForKey('E', 0, locale));
113 }
114}
Note: See TracBrowser for help on using the repository browser.