diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java index 8324b7a0d..5ab2f2a24 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java @@ -257,6 +257,25 @@ public class SimpleArtifactRepositoryTest extends AbstractProvisioningTest { } } + public void testRelativeRepositoryLocation() throws ProvisionException { + IArtifactDescriptor descriptor = new ArtifactDescriptor(new ArtifactKey("osgi.bundle", "helloworld", Version.createOSGi(1, 0, 0))); + URI repo = getTestData("CorruptedJar repo", "testData/artifactRepo/jarfiles").toURI(); + + SimpleArtifactRepository absRepo = (SimpleArtifactRepository) getArtifactRepositoryManager().loadRepository(repo, new NullProgressMonitor()); + URI absLocation = absRepo.getLocation(descriptor); + getArtifactRepositoryManager().removeRepository(repo); + + repo = new File(System.getProperty("user.dir")).toURI().relativize(repo); + repo = URI.create("file:" + repo.toString()); + + SimpleArtifactRepository repository = (SimpleArtifactRepository) getArtifactRepositoryManager().loadRepository(repo, new NullProgressMonitor()); + + URI location = repository.getLocation(descriptor); + assertNotNull("NULL Scheme", location.getScheme()); + assertTrue("File location is relative", location.isAbsolute()); + assertEquals("Path from relative & absolute repos differ", absLocation, location); + } + private static class TestDescriptor implements IArtifactDescriptor { private static final IProcessingStepDescriptor[] steps = new IProcessingStepDescriptor[0]; private IArtifactKey artifactKey; |