blob: 9648027c3ce7e849c33b54ea31da69d35f310093 [file] [log] [blame]
package org.eclipse.update.tests.core.boot;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import junit.framework.Assert;
import org.eclipse.core.boot.BootLoader;
import org.eclipse.core.boot.IPlatformConfiguration;
import org.eclipse.core.boot.IPlatformConfiguration.ISiteEntry;
import org.eclipse.core.boot.IPlatformConfiguration.ISitePolicy;
public class TestPlatCfgAPI extends PlatformConfigurationTestCase {
public TestPlatCfgAPI(String arg0) {
super(arg0);
}
public void testBasic() throws Exception {
// get new config object
IPlatformConfiguration cfig = null;
try {
cfig = BootLoader.getPlatformConfiguration(null);
} catch (IOException e) {
Assert.fail("0.0.0 "+e.toString());
}
ISiteEntry[] dflt = cfig.getConfiguredSites();
Assert.assertEquals("0.0.1",dflt.length,0);
// policy tests
ISitePolicy p1 = cfig.createSitePolicy(ISitePolicy.USER_INCLUDE, null);
Assert.assertEquals("1.0.0",p1.getType(),ISitePolicy.USER_INCLUDE);
Assert.assertEquals("1.0.1",p1.getList().length,0);
p1.setList(new String[] {"first"});
Assert.assertEquals("1.0.2",p1.getList().length,1);
Assert.assertEquals("1.0.3",p1.getList()[0],"first");
ISitePolicy p2 = cfig.createSitePolicy(ISitePolicy.USER_EXCLUDE, new String[0]);
Assert.assertEquals("1.1.0",p2.getType(),ISitePolicy.USER_EXCLUDE);
Assert.assertEquals("1.1.1",p2.getList().length,0);
p2.setList(new String[] {"first", "second"});
Assert.assertEquals("1.1.2",p2.getList().length,2);
Assert.assertEquals("1.1.3",p2.getList()[1],"second");
// create some urls
URL u1 = null;
URL u2 = null;
URL u3 = null;
URL u4 = null;
try {
u1 = new URL("file:d:/temp/");
u2 = new URL("file://localhost/temp/");
u3 = new URL("http://some.server/temp/");
u4 = new URL("http://bad.url");
} catch (MalformedURLException e) {
Assert.fail("2.0.0 unable to create URL "+e);
}
// site creation tests
ISiteEntry s1 = cfig.createSiteEntry(u1,p2);
Assert.assertEquals("3.0.0",s1.getURL(),u1);
Assert.assertEquals("3.0.1",s1.getSitePolicy(),p2);
s1.setSitePolicy(p1);
Assert.assertEquals("3.0.2",s1.getSitePolicy(),p1);
ISiteEntry s2 = cfig.createSiteEntry(u2,p1);
Assert.assertEquals("3.1.0",s2.getURL(),u2);
Assert.assertEquals("3.1.1",s2.getSitePolicy(),p1);
s2.setSitePolicy(p2);
Assert.assertEquals("3.1.2",s2.getSitePolicy(),p2);
// configure site tests
Assert.assertEquals("3.3.0",cfig.getConfiguredSites().length,0);
cfig.configureSite(s1);
Assert.assertEquals("3.3.1",cfig.getConfiguredSites().length,1);
cfig.configureSite(s2);
Assert.assertEquals("3.3.2",cfig.getConfiguredSites().length,2);
// lookup site tests
Assert.assertEquals("3.4.0",cfig.findConfiguredSite(u1),s1);
Assert.assertEquals("3.4.1",cfig.findConfiguredSite(u2),s2);
Assert.assertNull("3.4.3",cfig.findConfiguredSite(u4));
// unconfigure site tests
cfig.unconfigureSite(s1);
Assert.assertEquals("3.5.0",cfig.getConfiguredSites().length,1);
Assert.assertNull("3.5.1",cfig.findConfiguredSite(u1));
cfig.unconfigureSite(s2);
Assert.assertEquals("3.5.2",cfig.getConfiguredSites().length,0);
Assert.assertNull("3.5.3",cfig.findConfiguredSite(u2));
}
public void testSaveRestore() throws Exception {
Assert.assertNotNull("0.0 Unable to obtain temp directory",tempDir);
// get new config object
IPlatformConfiguration cfig = null;
try {
cfig = BootLoader.getPlatformConfiguration(null);
} catch (IOException e) {
Assert.fail("0.0.0 "+e.toString());
}
ISiteEntry[] sites = cfig.getConfiguredSites();
Assert.assertEquals("0.0.1",sites.length,0);
// create policies
ISitePolicy p1 = cfig.createSitePolicy(ISitePolicy.USER_INCLUDE, null);
ISitePolicy p2 = cfig.createSitePolicy(ISitePolicy.USER_EXCLUDE, new String[0]);
ISitePolicy p3 = cfig.createSitePolicy(ISitePolicy.USER_INCLUDE, new String[] {"first"});
ISitePolicy p4 = cfig.createSitePolicy(ISitePolicy.USER_EXCLUDE, new String[] {"first", "second"});
// create some urls
URL u1 = null;
URL u2 = null;
URL u3 = null;
URL u4 = null;
URL u5 = null;
try {
u1 = new URL("file:d:/temp/");
u2 = new URL("file://localhost/temp/");
u3 = new URL("http://some.server/temp/");
u4 = new URL("http://another.server/temp/");
u5 = new URL("http://one.more.server/temp/");
} catch (MalformedURLException e) {
Assert.fail("1.0 unable to create URL "+e);
}
// create and configure sites
ISiteEntry s1 = cfig.createSiteEntry(u1,p1);
cfig.configureSite(s1);
ISiteEntry s2 = cfig.createSiteEntry(u2,p2);
cfig.configureSite(s2);
ISiteEntry s3 = cfig.createSiteEntry(u3,p3);
cfig.configureSite(s3);
ISiteEntry s4 = cfig.createSiteEntry(u4,p4);
cfig.configureSite(s4);
sites = cfig.getConfiguredSites();
Assert.assertEquals("1.1",sites.length,4);
// do save
try {
cfig.save();
Assert.fail("2.0 was expecting IOException");
} catch (IOException e) {
}
URL cfigURL = null;
try {
cfigURL = new URL("file:"+tempDir+(new Date()).getTime()+"_platform.cfg");
} catch(MalformedURLException e) {
Assert.fail("2.1 unable to create URL "+e);
}
try {
cfig.save(cfigURL);
} catch (IOException e) {
Assert.fail("2.2 "+e);
}
// reload configuration
IPlatformConfiguration newCfig = null;
try {
newCfig = BootLoader.getPlatformConfiguration(cfigURL);
} catch (IOException e) {
Assert.fail("2.3 "+e.toString());
}
ISiteEntry[] newSites = cfig.getConfiguredSites();
Assert.assertEquals("2.4",newSites.length,4);
// check what we've got
Assert.assertEquals("3.0.1",sites[0].getURL(),newSites[0].getURL());
Assert.assertEquals("3.0.2",sites[0].getSitePolicy().getType(),newSites[0].getSitePolicy().getType());
Assert.assertEquals("3.0.3",sites[0].getSitePolicy().getList(),newSites[0].getSitePolicy().getList());
Assert.assertEquals("3.1.1",sites[1].getURL(),newSites[1].getURL());
Assert.assertEquals("3.1.2",sites[1].getSitePolicy().getType(),newSites[1].getSitePolicy().getType());
Assert.assertEquals("3.1.3",sites[1].getSitePolicy().getList(),newSites[1].getSitePolicy().getList());
Assert.assertEquals("3.2.1",sites[2].getURL(),newSites[2].getURL());
Assert.assertEquals("3.2.2",sites[2].getSitePolicy().getType(),newSites[2].getSitePolicy().getType());
Assert.assertEquals("3.2.3",sites[2].getSitePolicy().getList(),newSites[2].getSitePolicy().getList());
Assert.assertEquals("3.3.1",sites[3].getURL(),newSites[3].getURL());
Assert.assertEquals("3.3.2",sites[3].getSitePolicy().getType(),newSites[3].getSitePolicy().getType());
Assert.assertEquals("3.3.3",sites[3].getSitePolicy().getList(),newSites[3].getSitePolicy().getList());
}
public void testCurrentConfiguration() throws Exception {
Assert.assertNotNull("0.0 Unable to obtain temp directory",tempDir);
// get new config object
IPlatformConfiguration cfig = null;
cfig = BootLoader.getCurrentPlatformConfiguration();
URL[] path = cfig.getPluginPath();
cfig.save();
}
}