mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ui: extract test data parsing
This commit is contained in:
@@ -19,29 +19,13 @@ import com.intellij.util.containers.ContainerUtil;
|
||||
import gnu.trove.THashMap;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public abstract class KeymapsTestCase extends KeymapsTestCaseBase {
|
||||
@Override
|
||||
protected void collectKnownDuplicates(Map<String, Map<String, List<String>>> result) {
|
||||
appendKnownDuplicates(result, DEFAULT_DUPLICATES);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void collectUnknownActions(Set<String> result) {
|
||||
result.addAll(UNCNOWN_ACTION_IDS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Set<String> getBoundActions() {
|
||||
return DEFAULT_BOUND_ACTIONS;
|
||||
}
|
||||
|
||||
// @formatter:off
|
||||
@NonNls @SuppressWarnings({"HardCodedStringLiteral"})
|
||||
private static final Map<String, String[][]> DEFAULT_DUPLICATES = new THashMap<String, String[][]>(){{
|
||||
protected static final Map<String, String[][]> DEFAULT_DUPLICATES = new THashMap<String, String[][]>(){{
|
||||
put("$default", new String[][] {
|
||||
{ "ADD", "ExpandTreeNode", "Graph.ZoomIn"},
|
||||
{ "BACK_SPACE", "EditorBackSpace", "Images.Thumbnails.UpFolder"},
|
||||
@@ -357,7 +341,7 @@ public abstract class KeymapsTestCase extends KeymapsTestCaseBase {
|
||||
}};
|
||||
// @formatter:on
|
||||
|
||||
@NonNls private static final Set<String> UNCNOWN_ACTION_IDS = ContainerUtil.set(
|
||||
@NonNls protected static final Set<String> DEFAULT_UNKNOWN_ACTION_IDS = ContainerUtil.set(
|
||||
"ActivateVersionControlToolWindow", "ActivateFavoritesToolWindow", "ActivateCommanderToolWindow", "ActivateDebugToolWindow",
|
||||
"ActivateFindToolWindow",
|
||||
"ActivateHierarchyToolWindow", "ActivateMessagesToolWindow", "ActivateProjectToolWindow", "ActivateRunToolWindow",
|
||||
|
||||
+30
-11
@@ -49,13 +49,17 @@ public abstract class KeymapsTestCaseBase extends PlatformTestCase {
|
||||
private static final Set<String> LINUX_KEYMAPS = ContainerUtil.newHashSet("Default for XWin", "Default for GNOME", "Default for KDE");
|
||||
|
||||
|
||||
protected abstract void collectKnownDuplicates(Map<String, Map<String, List<String>>> result);
|
||||
/**
|
||||
* @return Keymap -> Shortcut -> [ActionId]
|
||||
*/
|
||||
protected abstract Map<String, Map<String, List<String>>> getKnownDuplicates();
|
||||
|
||||
protected abstract void collectUnknownActions(Set<String> result);
|
||||
protected abstract Set<String> getUnknownActions();
|
||||
|
||||
protected abstract Set<String> getBoundActions();
|
||||
|
||||
protected static void appendKnownDuplicates(Map<String, Map<String, List<String>>> result, Map<String, String[][]> duplicates) {
|
||||
protected static Map<String, Map<String, List<String>>> parseKnownDuplicates(Map<String, String[][]> duplicates) {
|
||||
HashMap<String, Map<String, List<String>>> result = new HashMap<>();
|
||||
for (Map.Entry<String, String[][]> eachKeymap : duplicates.entrySet()) {
|
||||
String keymapName = eachKeymap.getKey();
|
||||
|
||||
@@ -73,15 +77,31 @@ public abstract class KeymapsTestCaseBase extends PlatformTestCase {
|
||||
mapping.put(shortcuts[0], ContainerUtil.newArrayList(shortcuts, 1, shortcuts.length));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private Map<String, Map<String, List<String>>> getKnownDuplicates() {
|
||||
Map<String, Map<String, List<String>>> result = new LinkedHashMap<>();
|
||||
collectKnownDuplicates(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
protected static Map<String, Map<String, List<String>>> parseKnownDuplicates(Map<String, String[][]> baseDuplicates,
|
||||
Map<String, String[][]> ideDuplicates) {
|
||||
Map<String, Map<String, List<String>>> baseMap = parseKnownDuplicates(baseDuplicates);
|
||||
baseMap.keySet().retainAll(ContainerUtil.map(KeymapManagerEx.getInstanceEx().getAllKeymaps(), Keymap::getName));
|
||||
|
||||
Map<String, Map<String, List<String>>> ideMap = parseKnownDuplicates(ideDuplicates);
|
||||
|
||||
Map<String, Map<String, List<String>>> result = new HashMap<>();
|
||||
for (String keymap : ContainerUtil.union(baseMap.keySet(), ideMap.keySet())) {
|
||||
Map<String, List<String>> mapping = new HashMap<>();
|
||||
result.put(keymap, mapping);
|
||||
|
||||
Map<String, List<String>> baseMapping = baseMap.get(keymap);
|
||||
Map<String, List<String>> ideMapping = ideMap.get(keymap);
|
||||
|
||||
if (baseMapping != null) mapping.putAll(baseMapping);
|
||||
if (ideMapping != null) mapping.putAll(ideMapping);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public void testDuplicateShortcuts() {
|
||||
StringBuilder failMessage = new StringBuilder();
|
||||
Map<String, Map<String, List<String>>> knownDuplicates = getKnownDuplicates();
|
||||
@@ -202,8 +222,7 @@ public abstract class KeymapsTestCaseBase extends PlatformTestCase {
|
||||
}
|
||||
|
||||
public void testValidActionIds() {
|
||||
THashSet<String> unknownActions = new THashSet<>();
|
||||
collectUnknownActions(unknownActions);
|
||||
Set<String> unknownActions = getUnknownActions();
|
||||
|
||||
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
|
||||
Map<String, List<String>> missingActions = new FactoryMap<String, List<String>>() {
|
||||
|
||||
Reference in New Issue
Block a user