diff options
author | John Arthorne | 2009-04-03 21:28:20 +0000 |
---|---|---|
committer | John Arthorne | 2009-04-03 21:28:20 +0000 |
commit | 1cbf8981bcf88f109ebe22565f820c59aead6160 (patch) | |
tree | 9d3c1ab32cc396fc5c1dd292fe8bd98976105a87 /bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java | |
parent | f1c90e094e3318ea34afe99dc63b422e8f41c82f (diff) | |
download | rt.equinox.p2-1cbf8981bcf88f109ebe22565f820c59aead6160.tar.gz rt.equinox.p2-1cbf8981bcf88f109ebe22565f820c59aead6160.tar.xz rt.equinox.p2-1cbf8981bcf88f109ebe22565f820c59aead6160.zip |
Bug 267707 [composite repo] child repos are not marked as "system" repos after an upgrade
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java index f3c3b7093..9fb4b6d36 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java @@ -12,6 +12,7 @@ package org.eclipse.equinox.p2.tests.metadata.repository; import java.io.File; import java.io.IOException; +import java.lang.reflect.Field; import java.net.*; import java.util.*; import junit.framework.Test; @@ -20,6 +21,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; +import org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager; import org.eclipse.equinox.internal.p2.updatesite.metadata.UpdateSiteMetadataRepositoryFactory; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; import org.eclipse.equinox.internal.provisional.p2.core.eventbus.ProvisioningListener; @@ -226,6 +228,30 @@ public class MetadataRepositoryManagerTest extends AbstractProvisioningTest { } /** + * Tests that loading a disabled system repository does not damage its properties. + * This is a regression test for bug 267707. + */ + public void testLoadDisabledSystemRepository() throws ProvisionException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { + File site = getTestData("Repositoy", "/testData/metadataRepo/goodNonSystem/"); + URI location = site.toURI(); + manager.removeRepository(location); + manager.addRepository(location); + manager.setEnabled(location, false); + manager.setRepositoryProperty(location, IRepository.PROP_SYSTEM, String.valueOf(true)); + manager.loadRepository(location, getMonitor()); + + //simulate shutdown/restart by bashing repository manager field + Field field = AbstractRepositoryManager.class.getDeclaredField("repositories"); + field.setAccessible(true); + field.set(manager, null); + + String system = manager.getRepositoryProperty(location, IRepository.PROP_SYSTEM); + assertEquals("true", system); + assertFalse(manager.isEnabled(location)); + + } + + /** * Tests loading a repository that is malformed */ public void testLoadBrokenRepository() { |