blob: c638eb287d98de45aa759e37fb646cac380520c1 [file] [log] [blame]
package org.eclipse.update.tests.regularInstall;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import java.io.File;
import java.net.URL;
import org.eclipse.core.boot.IPlatformConfiguration;
import org.eclipse.update.core.*;
import org.eclipse.update.internal.core.ConfigurationPolicy;
import org.eclipse.update.internal.core.InternalSiteManager;
import org.eclipse.update.internal.core.SiteLocal;
import org.eclipse.update.internal.core.UpdateManagerUtils;
import org.eclipse.update.tests.UpdateManagerTestCase;
public class TestLocalSite extends UpdateManagerTestCase {
/**
* Test the getFeatures()
*/
public TestLocalSite(String arg0) {
super(arg0);
}
public void testCreationConfigFile() throws Exception {
//clean up
File localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.SITE_LOCAL_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
InternalSiteManager.localSite=null;
ILocalSite site = SiteManager.getLocalSite();
assertTrue("the local site already contains a config state, test cannot be executed",site.getCurrentConfiguration().getLabel().equals(SiteLocal.DEFAULT_CONFIG_LABEL));
site.save();
URL location = ((SiteLocal)site).getLocation();
String filePath = new URL(location,SiteLocal.DEFAULT_CONFIG_FILE).getFile();
File file = new File(filePath);
assertTrue("config file hasn't been saved in :"+filePath, file.exists());
assertTrue("Local site hasn't been saved in :"+localFile.getAbsolutePath(),localFile.exists());
// cleanup
UpdateManagerUtils.removeFromFileSystem(file);
UpdateManagerUtils.removeFromFileSystem(localFile);
}
public void testDefaultConfigFile() throws Exception {
//clean up
File localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.SITE_LOCAL_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
InternalSiteManager.localSite=null;
ILocalSite site = SiteManager.getLocalSite();
assertTrue("the local site already contains a config state, test cannot be executed",site.getCurrentConfiguration().getLabel().equals(SiteLocal.DEFAULT_CONFIG_LABEL));
assertTrue("The local site does not contain an history of install configuration",site.getConfigurationHistory().length!=0);
assertTrue("The local site does not contain an current install configuration",site.getCurrentConfiguration()!=null);
assertTrue("The local site does not contain a default configuration site for the current install config",site.getCurrentConfiguration().getConfigurationSites().length!=0);
System.out.println("Default Config Site is :"+site.getCurrentConfiguration().getConfigurationSites()[0].getSite().getURL().toExternalForm());
// cleanup
URL location = ((SiteLocal)site).getLocation();
String filePath = new URL(location,SiteLocal.DEFAULT_CONFIG_FILE).getFile();
File file = new File(filePath);
UpdateManagerUtils.removeFromFileSystem(file);
UpdateManagerUtils.removeFromFileSystem(localFile);
}
public void testInstallFeatureSaveConfig() throws Exception {
// cleanup
File localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.SITE_LOCAL_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
InternalSiteManager.localSite=null;
ILocalSite site = SiteManager.getLocalSite();
ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE);
IFeature feature = remoteSite.getFeatureReferences()[0].getFeature();
// we are not checking if this is read only
IInstallConfiguration newConfig = site.cloneCurrentConfiguration(null,"new Label");
//IInstallConfiguration newConfig = site.getCurrentConfiguration();
IConfigurationSite configSite = newConfig.getConfigurationSites()[0];
configSite.setConfigurationPolicy(SiteManager.createConfigurationPolicy(IPlatformConfiguration.ISitePolicy.USER_INCLUDE));
site.addConfiguration(newConfig);
configSite.install(feature,null);
// teh current one points to a real fature
// does not throw error.
IConfigurationSite configSite2 = site.getCurrentConfiguration().getConfigurationSites()[0];
IFeatureReference ref = configSite2.getConfiguredFeatures()[0];
IFeature feature2 = ref.getFeature();
String configuredFeature = feature2.getLabel();
assertEquals(feature2.getIdentifier().toString(),"org.eclipse.update.core.tests.feature3_1.0.0");
assertTrue("Wrong id version of feature",feature2.getIdentifier().toString().equalsIgnoreCase("org.eclipse.update.core.tests.feature3_1.0.0"));
// test only 2 install config in local site
assertTrue("wrong number of history in Local site",site.getConfigurationHistory().length==2);
// test only 1 site in current config
assertTrue("Wrong number of config sites in current config",site.getCurrentConfiguration().getConfigurationSites().length==1);
//test only one feature for the site
assertTrue("wrong number of configured features for config site",site.getCurrentConfiguration().getConfigurationSites()[0].getConfiguredFeatures().length==1);
// test only 2 activities
assertTrue("Wrong number of activities for install config",site.getCurrentConfiguration().getActivities().length==2);
site.save();
// check
// there are 2 configuration
String time = ""+site.getCurrentConfiguration().getCreationDate().getTime();
File file = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),"DefaultConfig"+time+".xml").getFile());
assertTrue("new configuration does not exist", file.exists());
// cleanup
localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.SITE_LOCAL_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.DEFAULT_CONFIG_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
UpdateManagerUtils.removeFromFileSystem(file);
localFile = new File(feature2.getURL().getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
}
public void testRetriveConfig() throws Exception {
// cleanup
File localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.SITE_LOCAL_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
InternalSiteManager.localSite=null;
ILocalSite site = SiteManager.getLocalSite();
ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE);
IFeature feature = remoteSite.getFeatureReferences()[0].getFeature();
// we are not checking if this is read only
IInstallConfiguration newConfig = site.cloneCurrentConfiguration(null,"new Label");
IConfigurationSite configSite = newConfig.getConfigurationSites()[0];
configSite.setConfigurationPolicy(SiteManager.createConfigurationPolicy(IPlatformConfiguration.ISitePolicy.USER_INCLUDE));
site.addConfiguration(newConfig);
configSite.install(feature,null);
site.save();
// we created the second xml file
//do not cleanup, we want to reuse previously created local site
// but force re-read of xml File
InternalSiteManager.localSite=null;
site = SiteManager.getLocalSite();
// check
// there are 2 configuration
String time = ""+site.getCurrentConfiguration().getCreationDate().getTime();
File file = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),"DefaultConfig"+time+".xml").getFile());
assertTrue("new configuration does not exist", file.exists());
// teh current one points to a real fature
// does not throw error.
IConfigurationSite configSite2 = site.getCurrentConfiguration().getConfigurationSites()[0];
IFeatureReference ref = configSite2.getConfiguredFeatures()[0];
IFeature feature2 = ref.getFeature();
String configuredFeature = feature2.getLabel();
assertEquals(feature2.getIdentifier().toString(),"org.eclipse.update.core.tests.feature3_1.0.0");
assertTrue("Wrong id version of feature",feature2.getIdentifier().toString().equalsIgnoreCase("org.eclipse.update.core.tests.feature3_1.0.0"));
// test only 2 install config in local site
assertTrue("wrong number of history in Local site",site.getConfigurationHistory().length==2);
// test only 1 site in current config
assertTrue("Wrong number of config sites in current config",site.getCurrentConfiguration().getConfigurationSites().length==1);
//test only one feature for the site
assertTrue("wrong number of configured features for config site",site.getCurrentConfiguration().getConfigurationSites()[0].getConfiguredFeatures().length==1);
// test only 2 activities
assertTrue("Wrong number of activities for install config",site.getCurrentConfiguration().getActivities().length==2);
// cleanup
localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.SITE_LOCAL_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.DEFAULT_CONFIG_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
UpdateManagerUtils.removeFromFileSystem(file);
}
public void testRetriveConfigHTTPInstall() throws Exception {
// cleanup
File localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.SITE_LOCAL_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
InternalSiteManager.localSite=null;
ILocalSite site = SiteManager.getLocalSite();
ISite remoteSite = SiteManager.getSite(SOURCE_HTTP_SITE);
IFeature feature = remoteSite.getFeatureReferences()[0].getFeature();
// we are not checking if this is read only
IInstallConfiguration newConfig = site.cloneCurrentConfiguration(null,"new Label");
IConfigurationSite configSite = newConfig.getConfigurationSites()[0];
configSite.setConfigurationPolicy(SiteManager.createConfigurationPolicy(IPlatformConfiguration.ISitePolicy.USER_INCLUDE));
site.addConfiguration(newConfig);
configSite.install(feature,null);
site.save();
//do not cleanup, we want to reuse previously created local site
// but force re-read of xml File
InternalSiteManager.localSite=null;
site = SiteManager.getLocalSite();
feature = remoteSite.getFeatureReferences()[0].getFeature();
// check
// there are 2 configuration
String time = ""+site.getCurrentConfiguration().getCreationDate().getTime();
File file = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),"DefaultConfig"+time+".xml").getFile());
assertTrue("new configuration does not exist", file.exists());
// teh current one points to a real fature
// does not throw error.
IConfigurationSite configSite2 = site.getCurrentConfiguration().getConfigurationSites()[0];
//FIXME: broken (Dec 4th 2001)
IFeatureReference ref = configSite2.getConfiguredFeatures()[0];
IFeature feature2 = ref.getFeature();
String configuredFeature = feature2.getLabel();
assertEquals(feature2.getIdentifier().toString(),"org.test1.ident1_1.0.0");
assertTrue("Wrong id version of feature",feature2.getIdentifier().toString().equalsIgnoreCase("org.test1.ident1_1.0.0"));
// test only 2 install config in local site
assertTrue("wrong number of history in Local site",site.getConfigurationHistory().length==2);
// test only 1 site in current config
assertTrue("Wrong number of config sites in current config",site.getCurrentConfiguration().getConfigurationSites().length==1);
//test only one feature for the site
assertTrue("wrong number of configured features for config site",site.getCurrentConfiguration().getConfigurationSites()[0].getConfiguredFeatures().length==1);
// test only 2 activities
assertTrue("Wrong number of activities for install config",site.getCurrentConfiguration().getActivities().length==2);
// cleanup
localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.SITE_LOCAL_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
localFile = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocation(),SiteLocal.DEFAULT_CONFIG_FILE).getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
UpdateManagerUtils.removeFromFileSystem(file);
localFile = new File(feature2.getURL().getFile());
UpdateManagerUtils.removeFromFileSystem(localFile);
}
}