mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
GT-2971 - Key Bindings - test fixes
This commit is contained in:
parent
380d863c96
commit
ad4ac0413d
5 changed files with 24 additions and 23 deletions
|
@ -603,7 +603,7 @@ public class TestEnv {
|
||||||
*/
|
*/
|
||||||
public PluginTool launchAnotherDefaultTool() {
|
public PluginTool launchAnotherDefaultTool() {
|
||||||
PluginTool newTool = createDefaultTool();
|
PluginTool newTool = createDefaultTool();
|
||||||
newTool.setToolName(newTool.getToolName() + toolID++);
|
AbstractGenericTest.runSwing(() -> newTool.setToolName(newTool.getToolName() + toolID++));
|
||||||
extraTools.add(newTool);
|
extraTools.add(newTool);
|
||||||
return newTool;
|
return newTool;
|
||||||
|
|
||||||
|
|
|
@ -48,14 +48,11 @@ import ghidra.program.util.AddressFieldLocation;
|
||||||
import ghidra.program.util.ProgramSelection;
|
import ghidra.program.util.ProgramSelection;
|
||||||
import ghidra.test.AbstractProgramBasedTest;
|
import ghidra.test.AbstractProgramBasedTest;
|
||||||
import ghidra.test.ToyProgramBuilder;
|
import ghidra.test.ToyProgramBuilder;
|
||||||
import ghidra.util.task.TaskMonitorAdapter;
|
import ghidra.util.task.TaskMonitor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test the plugin that deals with cut/paste comments and labels.
|
* Test the plugin that deals with cut/paste comments and labels
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class CopyPasteCommentsTest extends AbstractProgramBasedTest {
|
public class CopyPasteCommentsTest extends AbstractProgramBasedTest {
|
||||||
|
|
||||||
private PluginTool toolOne;
|
private PluginTool toolOne;
|
||||||
|
@ -112,16 +109,13 @@ public class CopyPasteCommentsTest extends AbstractProgramBasedTest {
|
||||||
DomainFolder rootFolder = env.getProject().getProjectData().getRootFolder();
|
DomainFolder rootFolder = env.getProject().getProjectData().getRootFolder();
|
||||||
|
|
||||||
Program sdk = program;
|
Program sdk = program;
|
||||||
final DomainFile df = rootFolder.createFile("sdk1", sdk, TaskMonitorAdapter.DUMMY_MONITOR);
|
final DomainFile df = rootFolder.createFile("sdk1", sdk, TaskMonitor.DUMMY);
|
||||||
programOne =
|
programOne = (ProgramDB) df.getDomainObject(this, true, false, TaskMonitor.DUMMY);
|
||||||
(ProgramDB) df.getDomainObject(this, true, false, TaskMonitorAdapter.DUMMY_MONITOR);
|
|
||||||
env.release(sdk);
|
env.release(sdk);
|
||||||
|
|
||||||
Program sdk2 = buildProgram("sdk2");
|
Program sdk2 = buildProgram("sdk2");
|
||||||
final DomainFile df2 =
|
final DomainFile df2 = rootFolder.createFile("sdk2", sdk2, TaskMonitor.DUMMY);
|
||||||
rootFolder.createFile("sdk2", sdk2, TaskMonitorAdapter.DUMMY_MONITOR);
|
programTwo = (ProgramDB) df2.getDomainObject(this, true, false, TaskMonitor.DUMMY);
|
||||||
programTwo =
|
|
||||||
(ProgramDB) df2.getDomainObject(this, true, false, TaskMonitorAdapter.DUMMY_MONITOR);
|
|
||||||
env.release(sdk2);
|
env.release(sdk2);
|
||||||
|
|
||||||
setupProgramOne();
|
setupProgramOne();
|
||||||
|
|
|
@ -98,12 +98,13 @@ public class MemoryMapPluginTest extends AbstractGhidraHeadedIntegrationTest {
|
||||||
env.open(program);
|
env.open(program);
|
||||||
Set<DockingActionIf> actions = getActionsByOwner(tool, plugin.getName());
|
Set<DockingActionIf> actions = getActionsByOwner(tool, plugin.getName());
|
||||||
for (DockingActionIf action : actions) {
|
for (DockingActionIf action : actions) {
|
||||||
if (action.getName().equals("Add Block") || action.getName().equals("Set Image Base") ||
|
String name = action.getName();
|
||||||
action.getName().equals("Memory Map")) {
|
if (name.equals("Add Block") || name.equals("Set Image Base") ||
|
||||||
|
name.equals("Memory Map") || name.equals("Close Window")) {
|
||||||
assertTrue(action.isEnabledForContext(provider.getActionContext(null)));
|
assertTrue(action.isEnabledForContext(provider.getActionContext(null)));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
assertTrue(!action.isEnabledForContext(provider.getActionContext(null)));
|
assertFalse(action.isEnabledForContext(provider.getActionContext(null)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,9 +117,11 @@ public class MemoryMapPluginTest extends AbstractGhidraHeadedIntegrationTest {
|
||||||
assertEquals(0, table.getModel().getRowCount());
|
assertEquals(0, table.getModel().getRowCount());
|
||||||
Set<DockingActionIf> actions = getActionsByOwner(tool, plugin.getName());
|
Set<DockingActionIf> actions = getActionsByOwner(tool, plugin.getName());
|
||||||
for (DockingActionIf action : actions) {
|
for (DockingActionIf action : actions) {
|
||||||
if (!action.getName().equals("Memory Map")) {
|
String name = action.getName();
|
||||||
assertTrue(!action.isEnabledForContext(provider.getActionContext(null)));
|
if (name.equals("Memory Map") || name.equals("Close Window")) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
assertFalse(action.isEnabledForContext(provider.getActionContext(null)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class FunctionGraphCacheTest extends AbstractFunctionGraphTest {
|
||||||
private List<Address> disposedFunctionData = Collections.synchronizedList(new ArrayList<>());
|
private List<Address> disposedFunctionData = Collections.synchronizedList(new ArrayList<>());
|
||||||
private List<Address> evictedFromCache = Collections.synchronizedList(new ArrayList<>());
|
private List<Address> evictedFromCache = Collections.synchronizedList(new ArrayList<>());
|
||||||
|
|
||||||
// partial fake of DecompilerController to take control of the buildCache() method and spy
|
// partial fake of FGController to take control of the buildCache() method and spy
|
||||||
// on the two methods that might dispose a FunctionGrahpData object.
|
// on the two methods that might dispose a FunctionGrahpData object.
|
||||||
public class FakeFunctionGraphController extends MockUp<FGController> {
|
public class FakeFunctionGraphController extends MockUp<FGController> {
|
||||||
|
|
||||||
|
|
|
@ -163,10 +163,13 @@ class DockableToolBarManager {
|
||||||
|
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
|
||||||
DockingWindowManager dwm = dockableComponent.getDockingWindowManager();
|
// this will be null for non-standard use cases
|
||||||
DockingTool tool = dwm.getTool();
|
if (dockableComponent != null) {
|
||||||
ComponentProvider provider = dockableComponent.getComponentProvider();
|
DockingWindowManager dwm = dockableComponent.getDockingWindowManager();
|
||||||
tool.removeLocalAction(provider, closeButtonManager.getAction());
|
DockingTool tool = dwm.getTool();
|
||||||
|
ComponentProvider provider = dockableComponent.getComponentProvider();
|
||||||
|
tool.removeLocalAction(provider, closeButtonManager.getAction());
|
||||||
|
}
|
||||||
|
|
||||||
headerUpdater.dispose();
|
headerUpdater.dispose();
|
||||||
menuManager.dispose();
|
menuManager.dispose();
|
||||||
|
@ -186,6 +189,7 @@ class DockableToolBarManager {
|
||||||
super("Close Window", owner, KeyBindingType.SHARED);
|
super("Close Window", owner, KeyBindingType.SHARED);
|
||||||
setDescription("Close Window");
|
setDescription("Close Window");
|
||||||
setToolBarData(new ToolBarData(CLOSE_ICON, null));
|
setToolBarData(new ToolBarData(CLOSE_ICON, null));
|
||||||
|
markHelpUnnecessary();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue