blob: a8f32aba94e5844af207c4af3e682a44f0830e56 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.equinox.p2.tests.reconciler.dropins;
import java.io.File;
import java.net.MalformedURLException;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.equinox.internal.p2.update.Configuration;
public class BasicProductTests extends AbstractSharedBundleProductTest {
public BasicProductTests(String name) {
super(name);
}
public static Test suite() {
TestSuite suite = new SharedBundleProductTestSuite();
suite.setName(BasicProductTests.class.getName());
suite.addTest(new BasicProductTests("testAddRemove"));
suite.addTest(new BasicProductTests("testReplace"));
return suite;
}
public void testAddRemove() {
// setup
assertInitialized();
File jar = getTestData("1.0", "testData/reconciler/plugins/myBundle_1.0.0.jar");
File shared = new File(output, "shared/plugins");
File target = new File(shared, jar.getName());
copy("1.1", jar, target);
String targetURLString = null;
try {
targetURLString = target.toURI().toURL().toExternalForm();
} catch (MalformedURLException e) {
fail("1.99", e);
}
// add the bundle to the platform.xml and reconcile
Configuration config = loadConfiguration();
addBundleToConfiguration(config, targetURLString);
saveConfiguration(config);
reconcile("4.0");
assertExistsInBundlesInfo("5.0", "myBundle");
// cleanup/remove the bundle and verify
assertTrue("6.0", delete(target));
removeBundleFromConfiguration(config, targetURLString);
reconcile("6.5");
assertDoesNotExistInBundlesInfo("7.0", "myBundle");
}
public void testReplace() {
// setup
assertInitialized();
File jar = getTestData("1.0", "testData/reconciler/plugins/myBundle_1.0.0.jar");
File shared = new File(output, "shared/plugins");
File target = new File(shared, jar.getName());
copy("1.1", jar, target);
String targetURLString = null;
try {
targetURLString = target.toURI().toURL().toExternalForm();
} catch (MalformedURLException e) {
fail("1.99", e);
}
// add bundle to platform.xml and reconcile
Configuration config = loadConfiguration();
addBundleToConfiguration(config, targetURLString);
saveConfiguration(config);
reconcile("2.0");
assertExistsInBundlesInfo("2.1", "myBundle", "1.0.0");
// replace with a higher version and reconcile
// leave the old version in the shared bundle area
File higherJAR = getTestData("3.0", "testData/reconciler/plugins/myBundle_2.0.0.jar");
File higherTarget = new File(shared, higherJAR.getName());
copy("3.1", higherJAR, higherTarget);
String higherTargetURLString = null;
try {
higherTargetURLString = higherTarget.toURI().toURL().toExternalForm();
} catch (MalformedURLException e) {
fail("3.99", e);
}
removeBundleFromConfiguration(config, targetURLString);
addBundleToConfiguration(config, higherTargetURLString);
saveConfiguration(config);
reconcile("3.5");
assertExistsInBundlesInfo("3.6", "myBundle", "2.0.0");
assertDoesNotExistInBundlesInfo("3.7.0", "myBundle", "1.0.0");
// cleanup/remove and verify
assertTrue("6.0", delete(target));
assertTrue("6.1", delete(higherTarget));
removeBundleFromConfiguration(config, higherTargetURLString);
reconcile("6.5");
assertDoesNotExistInBundlesInfo("7.0", "myBundle");
}
}