mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +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();
|
||||
checkUserInfo();
|
||||
checkHostInfo();
|
||||
this.repositoryName = GhidraURL.isServerRepositoryURL(url) ? parseRepositoryName() : null;
|
||||
this.repositoryName = parseRepositoryName();
|
||||
this.itemPath = parseItemPath();
|
||||
}
|
||||
|
||||
|
@ -185,6 +185,9 @@ public abstract class GhidraProtocolConnector {
|
|||
String path = url.getPath();
|
||||
|
||||
if (repositoryName == null) {
|
||||
if (!StringUtils.isEmpty(path) && !"/".equals(path)) {
|
||||
throw new MalformedURLException();
|
||||
}
|
||||
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
|
||||
*/
|
||||
public String getRepositoryName() {
|
||||
|
|
|
@ -35,38 +35,37 @@ public class DefaultLocalGhidraProtocolConnectorParseTest extends AbstractGeneri
|
|||
|
||||
DefaultLocalGhidraProtocolConnector pp =
|
||||
new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/C:/x/y/proj"));
|
||||
assertNull(pp.getRepositoryName());
|
||||
assertEquals("proj", pp.getRepositoryName());
|
||||
assertEquals("/", pp.getFolderPath());
|
||||
assertNull(pp.getFolderItemName());
|
||||
assertEquals("/", getInstanceField("itemPath", pp));
|
||||
|
||||
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj"));
|
||||
assertNull(pp.getRepositoryName());
|
||||
assertEquals("proj", pp.getRepositoryName());
|
||||
assertEquals("/", pp.getFolderPath());
|
||||
assertNull(pp.getFolderItemName());
|
||||
assertEquals("/", getInstanceField("itemPath", pp));
|
||||
|
||||
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?/"));
|
||||
assertNull(pp.getRepositoryName());
|
||||
assertEquals("proj", pp.getRepositoryName());
|
||||
assertEquals("/", pp.getFolderPath());
|
||||
assertNull(pp.getFolderItemName());
|
||||
assertEquals("/", getInstanceField("itemPath", pp));
|
||||
|
||||
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?/a"));
|
||||
assertNull(pp.getRepositoryName());
|
||||
assertEquals("proj", pp.getRepositoryName());
|
||||
assertEquals("/", pp.getFolderPath());
|
||||
assertEquals("a", pp.getFolderItemName());
|
||||
assertEquals("/a", getInstanceField("itemPath", pp));
|
||||
|
||||
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?/a/b#ref"));
|
||||
assertNull(pp.getRepositoryName());
|
||||
assertEquals("proj", pp.getRepositoryName());
|
||||
assertEquals("/a", pp.getFolderPath());
|
||||
assertEquals("b", pp.getFolderItemName());
|
||||
assertEquals("/a/b", getInstanceField("itemPath", pp));
|
||||
|
||||
try {
|
||||
pp =
|
||||
new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?//"));
|
||||
pp = new DefaultLocalGhidraProtocolConnector(new URL("ghidra:/x/y/proj?//"));
|
||||
fail();
|
||||
}
|
||||
catch (MalformedURLException e) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue