mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 10:49:34 +02:00
GP-0 corrected GhidraURL related test failures
This commit is contained in:
parent
41076f3af0
commit
34b08077dd
2 changed files with 12 additions and 9 deletions
|
@ -56,7 +56,7 @@ public abstract class GhidraProtocolConnector {
|
||||||
checkProtocol();
|
checkProtocol();
|
||||||
checkUserInfo();
|
checkUserInfo();
|
||||||
checkHostInfo();
|
checkHostInfo();
|
||||||
this.repositoryName = GhidraURL.isServerRepositoryURL(url) ? parseRepositoryName() : null;
|
this.repositoryName = parseRepositoryName();
|
||||||
this.itemPath = parseItemPath();
|
this.itemPath = parseItemPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -185,6 +185,9 @@ public abstract class GhidraProtocolConnector {
|
||||||
String path = url.getPath();
|
String path = url.getPath();
|
||||||
|
|
||||||
if (repositoryName == null) {
|
if (repositoryName == null) {
|
||||||
|
if (!StringUtils.isEmpty(path) && !"/".equals(path)) {
|
||||||
|
throw new MalformedURLException();
|
||||||
|
}
|
||||||
return null; // presumed server-only URL
|
return null; // presumed server-only URL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,7 +209,8 @@ public abstract class GhidraProtocolConnector {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the repository name associated with the URL.
|
* Gets the repository name associated with the URL. If a local URL is used this will
|
||||||
|
* correspond to the project name.
|
||||||
* @return the repository name or null if URL does not identify a specific repository
|
* @return the repository name or null if URL does not identify a specific repository
|
||||||
*/
|
*/
|
||||||
public String getRepositoryName() {
|
public String getRepositoryName() {
|
||||||
|
|
|
@ -35,38 +35,37 @@ public class DefaultLocalGhidraProtocolConnectorParseTest extends AbstractGeneri
|
||||||
|
|
||||||
DefaultLocalGhidraProtocolConnector pp =
|
DefaultLocalGhidraProtocolConnector pp =
|
||||||
new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/C:/x/y/proj"));
|
new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/C:/x/y/proj"));
|
||||||
assertNull(pp.getRepositoryName());
|
assertEquals("proj", pp.getRepositoryName());
|
||||||
assertEquals("/", pp.getFolderPath());
|
assertEquals("/", pp.getFolderPath());
|
||||||
assertNull(pp.getFolderItemName());
|
assertNull(pp.getFolderItemName());
|
||||||
assertEquals("/", getInstanceField("itemPath", pp));
|
assertEquals("/", getInstanceField("itemPath", pp));
|
||||||
|
|
||||||
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj"));
|
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj"));
|
||||||
assertNull(pp.getRepositoryName());
|
assertEquals("proj", pp.getRepositoryName());
|
||||||
assertEquals("/", pp.getFolderPath());
|
assertEquals("/", pp.getFolderPath());
|
||||||
assertNull(pp.getFolderItemName());
|
assertNull(pp.getFolderItemName());
|
||||||
assertEquals("/", getInstanceField("itemPath", pp));
|
assertEquals("/", getInstanceField("itemPath", pp));
|
||||||
|
|
||||||
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?/"));
|
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?/"));
|
||||||
assertNull(pp.getRepositoryName());
|
assertEquals("proj", pp.getRepositoryName());
|
||||||
assertEquals("/", pp.getFolderPath());
|
assertEquals("/", pp.getFolderPath());
|
||||||
assertNull(pp.getFolderItemName());
|
assertNull(pp.getFolderItemName());
|
||||||
assertEquals("/", getInstanceField("itemPath", pp));
|
assertEquals("/", getInstanceField("itemPath", pp));
|
||||||
|
|
||||||
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?/a"));
|
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?/a"));
|
||||||
assertNull(pp.getRepositoryName());
|
assertEquals("proj", pp.getRepositoryName());
|
||||||
assertEquals("/", pp.getFolderPath());
|
assertEquals("/", pp.getFolderPath());
|
||||||
assertEquals("a", pp.getFolderItemName());
|
assertEquals("a", pp.getFolderItemName());
|
||||||
assertEquals("/a", getInstanceField("itemPath", pp));
|
assertEquals("/a", getInstanceField("itemPath", pp));
|
||||||
|
|
||||||
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?/a/b#ref"));
|
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?/a/b#ref"));
|
||||||
assertNull(pp.getRepositoryName());
|
assertEquals("proj", pp.getRepositoryName());
|
||||||
assertEquals("/a", pp.getFolderPath());
|
assertEquals("/a", pp.getFolderPath());
|
||||||
assertEquals("b", pp.getFolderItemName());
|
assertEquals("b", pp.getFolderItemName());
|
||||||
assertEquals("/a/b", getInstanceField("itemPath", pp));
|
assertEquals("/a/b", getInstanceField("itemPath", pp));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
pp =
|
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?//"));
|
||||||
new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?//"));
|
|
||||||
fail();
|
fail();
|
||||||
}
|
}
|
||||||
catch (MalformedURLException e) {
|
catch (MalformedURLException e) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue