Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Arthorne2009-04-03 21:28:20 +0000
committerJohn Arthorne2009-04-03 21:28:20 +0000
commit1cbf8981bcf88f109ebe22565f820c59aead6160 (patch)
tree9d3c1ab32cc396fc5c1dd292fe8bd98976105a87 /bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java
parentf1c90e094e3318ea34afe99dc63b422e8f41c82f (diff)
downloadrt.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.java26
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() {

Back to the top