mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +02:00
GT-3035 - Restore Integration Tests - more missing test files; updated
test environment to install a default tool
This commit is contained in:
parent
4dc8e77172
commit
554bce2407
26 changed files with 4989 additions and 40 deletions
|
@ -0,0 +1,426 @@
|
|||
/* ###
|
||||
* IP: GHIDRA
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ghidra.test;
|
||||
|
||||
import java.awt.Window;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.PropertyVetoException;
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
import org.jdom.Element;
|
||||
|
||||
import docking.*;
|
||||
import docking.action.DockingActionIf;
|
||||
import docking.actions.DockingToolActions;
|
||||
import docking.actions.PopupActionProvider;
|
||||
import docking.util.image.ToolIconURL;
|
||||
import ghidra.framework.model.*;
|
||||
import ghidra.framework.options.ToolOptions;
|
||||
import ghidra.framework.plugintool.PluginEvent;
|
||||
import ghidra.program.model.listing.Program;
|
||||
|
||||
public class DummyTool implements Tool {
|
||||
private final static String DEFAULT_NAME = "untitled";
|
||||
private String name = DEFAULT_NAME;
|
||||
private String instanceName;
|
||||
private String description;
|
||||
private ToolIconURL iconURL;
|
||||
private Project project;
|
||||
|
||||
private DockingToolActions toolActions = new DummyToolActions();
|
||||
|
||||
public DummyTool() {
|
||||
this(DEFAULT_NAME);
|
||||
}
|
||||
|
||||
public DummyTool(String name) {
|
||||
this.name = name;
|
||||
instanceName = "";
|
||||
}
|
||||
|
||||
public DummyTool(Project project) {
|
||||
this.project = project;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setToolName(String typeName) throws PropertyVetoException {
|
||||
name = typeName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
if (project != null) {
|
||||
project.getToolServices().closeTool(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCloseDomainFile(DomainFile domainFile) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void putInstanceName(String newInstanceName) {
|
||||
this.instanceName = newInstanceName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getToolName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visibility) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toFront() {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name + instanceName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getConsumedToolEventNames() {
|
||||
return new String[] { "DummyToolEvent" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInstanceName() {
|
||||
return instanceName;
|
||||
}
|
||||
|
||||
public void addToolListener(ToolListener listener, String toolEvent) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addToolListener(ToolListener listener) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToolEventNames() {
|
||||
return new String[] { "DummyToolEvent" };
|
||||
}
|
||||
|
||||
public void removeToolListener(ToolListener listener, String toolEvent) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeToolListener(ToolListener listener) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasConfigChanged() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void addChangeListener(ChangeListener l) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addPropertyChangeListener(PropertyChangeListener l) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<?>[] getSupportedDataTypes() {
|
||||
return new Class[] { Program.class };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean acceptDomainFiles(DomainFile[] data) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DomainFile[] getDomainFiles() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void removeChangeListener(ChangeListener l) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setConfigChanged(boolean changed) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public Element saveToXml(boolean includeConfigState) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Element saveDataStateToXml(boolean isTransactionState) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void restoreFromXml(Element root) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restoreDataStateFromXml(Element root) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removePropertyChangeListener(PropertyChangeListener l) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processToolEvent(PluginEvent toolEvent) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void firePluginEvent(PluginEvent event) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIconURL(ToolIconURL iconURL) {
|
||||
this.iconURL = iconURL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ToolIconURL getIconURL() {
|
||||
return iconURL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImageIcon getIcon() {
|
||||
return iconURL.getIcon();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ToolTemplate saveToolToToolTemplate() {
|
||||
return getToolTemplate(true);
|
||||
}
|
||||
|
||||
public void enableClose() {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public ToolTemplate getToolTemplate(boolean includeConfigState) {
|
||||
return new DummyToolTemplate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restoreWindowingDataFromXml(Element windowData) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public Element saveWindowingDataToXml() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldSave() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canClose(boolean isExiting) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addComponentProvider(ComponentProvider componentProvider, boolean show) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeComponentProvider(ComponentProvider componentProvider) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public ComponentProvider getComponentProvider(String providerName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addLocalAction(ComponentProvider componentProvider, DockingActionIf action) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeLocalAction(ComponentProvider componentProvider, DockingActionIf action) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addPopupActionProvider(PopupActionProvider listener) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removePopupActionProvider(PopupActionProvider listener) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<DockingActionIf> getAllActions() {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<DockingActionIf> getDockingActionsByOwnerName(String owner) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ComponentProvider getActiveComponentProvider() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showComponentProvider(ComponentProvider componentProvider, boolean visible) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showDialog(DialogComponentProvider dialogComponent) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toFront(ComponentProvider componentProvider) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public DockingWindowManager getWindowManager() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible(ComponentProvider componentProvider) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isActive(ComponentProvider componentProvider) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTitle(ComponentProvider componentProvider) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMenuGroup(String[] menuPath, String group, String menuSubGroup) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void contextChanged(ComponentProvider provider) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionContext getGlobalContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStatusInfo(String text) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStatusInfo(String text, boolean beep) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearStatusInfo() {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addAction(DockingActionIf action) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeAction(DockingActionIf action) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public Window getProviderWindow(ComponentProvider componentProvider) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ToolOptions getOptions(String categoryName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addContextListener(DockingContextListener listener) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeContextListener(DockingContextListener listener) {
|
||||
//do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public DockingToolActions getToolActions() {
|
||||
return toolActions;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
/* ###
|
||||
* IP: GHIDRA
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ghidra.test;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import docking.ComponentProvider;
|
||||
import docking.action.DockingActionIf;
|
||||
import docking.actions.DockingToolActions;
|
||||
|
||||
public class DummyToolActions implements DockingToolActions {
|
||||
|
||||
@Override
|
||||
public void addLocalAction(ComponentProvider provider, DockingActionIf action) {
|
||||
// stub
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addGlobalAction(DockingActionIf action) {
|
||||
// stub
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeGlobalAction(DockingActionIf action) {
|
||||
// stub
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeActions(String owner) {
|
||||
// stub
|
||||
}
|
||||
|
||||
@Override
|
||||
public DockingActionIf getLocalAction(ComponentProvider provider, String actionName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<DockingActionIf> getActions(String owner) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<DockingActionIf> getAllActions() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeLocalAction(ComponentProvider provider, DockingActionIf action) {
|
||||
// stub
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeActions(ComponentProvider provider) {
|
||||
// stub
|
||||
}
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
/* ###
|
||||
* IP: GHIDRA
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ghidra.test;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
|
||||
import org.jdom.Element;
|
||||
|
||||
import docking.util.image.ToolIconURL;
|
||||
import ghidra.framework.model.*;
|
||||
import ghidra.program.model.listing.Program;
|
||||
|
||||
public class DummyToolTemplate implements ToolTemplate {
|
||||
|
||||
@Override
|
||||
public Tool createTool(Project project) {
|
||||
return new DummyTool(project);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImageIcon getIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ToolIconURL getIconURL() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Dummy Tool";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPath() {
|
||||
return "/dummy";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<?>[] getSupportedDataTypes() {
|
||||
return new Class[] { Program.class };
|
||||
}
|
||||
|
||||
@Override
|
||||
public Element getToolElement() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restoreFromXml(Element root) {
|
||||
// stub
|
||||
}
|
||||
|
||||
@Override
|
||||
public Element saveToXml() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setName(String name) {
|
||||
// stub
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue