mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 10:19:23 +02:00
GP-2509 GP-2644 Improved Ghidra URL support. Added support for Ghidra
URL linked files and folders within project.
This commit is contained in:
parent
8d6cf5e310
commit
5a422c4502
153 changed files with 7083 additions and 1732 deletions
|
@ -36,6 +36,7 @@ import docking.wizard.WizardPanel;
|
|||
import generic.theme.GThemeDefaults.Colors;
|
||||
import ghidra.app.plugin.core.archive.RestoreDialog;
|
||||
import ghidra.framework.data.GhidraFileData;
|
||||
import ghidra.framework.data.ProjectFileManager;
|
||||
import ghidra.framework.main.*;
|
||||
import ghidra.framework.model.*;
|
||||
import ghidra.framework.plugintool.dialog.*;
|
||||
|
@ -351,8 +352,13 @@ public class FrontEndPluginScreenShots extends GhidraScreenShotGenerator {
|
|||
|
||||
@Test
|
||||
public void testProjectExists() {
|
||||
OkDialog.show("Project Exists",
|
||||
"Cannot restore project because project named TestPrj already exists.");
|
||||
runSwing(() -> {
|
||||
OkDialog.show("Project Exists",
|
||||
"Cannot restore project because project named TestPrj already exists.");
|
||||
}, false);
|
||||
|
||||
waitForSwing();
|
||||
|
||||
captureDialog();
|
||||
}
|
||||
|
||||
|
@ -651,25 +657,60 @@ public class FrontEndPluginScreenShots extends GhidraScreenShotGenerator {
|
|||
@Test
|
||||
public void testViewOtherProjects()
|
||||
throws IOException, LockException, InvalidNameException, CancelledException {
|
||||
ProjectTestUtils.deleteProject(TEMP_DIR, OTHER_PROJECT);
|
||||
|
||||
Project project = env.getProject();
|
||||
program = env.getProgram("WinHelloCPP.exe");
|
||||
ProjectData projectData = project.getProjectData();
|
||||
projectData.getRootFolder().createFile("HelloCpp.exe", program, TaskMonitor.DUMMY);
|
||||
|
||||
project.close();
|
||||
|
||||
// Create other project to be viewed
|
||||
ProjectTestUtils.deleteProject(TEMP_DIR, OTHER_PROJECT);
|
||||
Project otherProject = ProjectTestUtils.getProject(TEMP_DIR, OTHER_PROJECT);
|
||||
|
||||
Language language = getZ80_LANGUAGE();
|
||||
ProjectTestUtils.createProgramFile(otherProject, "Program1", language,
|
||||
language.getDefaultCompilerSpec(), null);
|
||||
ProjectTestUtils.createProgramFile(otherProject, "Program2", language,
|
||||
language.getDefaultCompilerSpec(), null);
|
||||
otherProject.close();
|
||||
|
||||
waitForSwing();
|
||||
|
||||
performAction("View Project", "FrontEndPlugin", false);
|
||||
final GhidraFileChooser fileChooser = (GhidraFileChooser) getDialog();
|
||||
runSwing(() -> fileChooser.setSelectedFile(new File(TEMP_DIR, OTHER_PROJECT)));
|
||||
pressButtonOnDialog("Select Project");
|
||||
setToolSize(500, 600);
|
||||
captureToolWindow(700, 600);
|
||||
|
||||
ProjectTestUtils.deleteProject(TEMP_DIR, OTHER_PROJECT);
|
||||
ProjectTestUtils.deleteProject(TEMP_DIR, OTHER_PROJECT);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLinkOtherProject()
|
||||
throws IOException, LockException, InvalidNameException, CancelledException {
|
||||
|
||||
Project project = env.getProject();
|
||||
program = env.getProgram("WinHelloCPP.exe");
|
||||
ProjectFileManager projectData = (ProjectFileManager) project.getProjectData();
|
||||
projectData.getRootFolder().createFile("HelloCpp.exe", program, TaskMonitor.DUMMY);
|
||||
|
||||
// Create other project to be viewed
|
||||
ProjectTestUtils.deleteProject(TEMP_DIR, OTHER_PROJECT);
|
||||
Project otherProject = ProjectTestUtils.getProject(TEMP_DIR, OTHER_PROJECT);
|
||||
Language language = getZ80_LANGUAGE();
|
||||
DomainFile otherFile =
|
||||
ProjectTestUtils.createProgramFile(otherProject, "Program1", language,
|
||||
language.getDefaultCompilerSpec(), null);
|
||||
ProjectTestUtils.createProgramFile(otherProject, "Program2", language,
|
||||
language.getDefaultCompilerSpec(), null);
|
||||
|
||||
otherFile.copyToAsLink(projectData.getRootFolder());
|
||||
|
||||
otherProject.close();
|
||||
waitForSwing();
|
||||
project = ProjectTestUtils.getProject(TEMP_DIR, PROJECT_NAME);
|
||||
|
||||
waitForBusyTool(tool);
|
||||
|
||||
performAction("View Project", "FrontEndPlugin", false);
|
||||
final GhidraFileChooser fileChooser = (GhidraFileChooser) getDialog();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue