Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/dialogs/UpdateWizardTest.java')
-rw-r--r--bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/dialogs/UpdateWizardTest.java157
1 files changed, 61 insertions, 96 deletions
diff --git a/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/dialogs/UpdateWizardTest.java b/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/dialogs/UpdateWizardTest.java
index 7ec1dc401..e7a51619c 100644
--- a/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/dialogs/UpdateWizardTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/dialogs/UpdateWizardTest.java
@@ -10,25 +10,21 @@
*******************************************************************************/
package org.eclipse.equinox.p2.tests.ui.dialogs;
-import org.eclipse.equinox.internal.provisional.p2.metadata.Version;
-import org.eclipse.equinox.internal.provisional.p2.metadata.VersionRange;
+import org.eclipse.equinox.p2.metadata.Version;
+import org.eclipse.equinox.p2.metadata.VersionRange;
+
+import org.eclipse.equinox.p2.metadata.IProvidedCapability;
+import org.eclipse.equinox.p2.metadata.IUpdateDescriptor;
+
+import org.eclipse.equinox.p2.metadata.ILicense;
-import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.equinox.internal.p2.metadata.License;
-import org.eclipse.equinox.internal.p2.ui.dialogs.ResolutionResultsWizardPage;
-import org.eclipse.equinox.internal.p2.ui.dialogs.SelectableIUsPage;
-import org.eclipse.equinox.internal.p2.ui.model.AvailableUpdateElement;
-import org.eclipse.equinox.internal.provisional.p2.core.*;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
+import org.eclipse.equinox.internal.p2.ui.ProvUI;
+import org.eclipse.equinox.internal.p2.ui.dialogs.*;
import org.eclipse.equinox.internal.provisional.p2.metadata.*;
import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI;
-import org.eclipse.equinox.internal.provisional.p2.ui.ProvisioningOperationRunner;
-import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.ProvisioningWizardDialog;
-import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.UpdateWizard;
-import org.eclipse.equinox.internal.provisional.p2.ui.model.IUElementListRoot;
-import org.eclipse.equinox.internal.provisional.p2.ui.operations.PlannerResolutionOperation;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.operations.*;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardDialog;
@@ -49,41 +45,39 @@ public class UpdateWizardTest extends WizardTest {
super.setUp();
InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
iu.setId(MAIN_IU);
- iu.setVersion(new Version(1, 0, 0));
+ iu.setVersion(Version.createOSGi(1, 0, 0));
iu.setSingleton(true);
iu.setCapabilities(new IProvidedCapability[] {MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, MAIN_IU, iu.getVersion())});
main = MetadataFactory.createInstallableUnit(iu);
install(main, true, false);
IUpdateDescriptor update = MetadataFactory.createUpdateDescriptor(MAIN_IU, new VersionRange("[1.0.0, 1.0.0]"), 0, "update description");
- mainUpgrade1 = createIU(MAIN_IU, new Version(2, 0, 0), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, null, NO_TP_DATA, true, update, NO_REQUIRES);
+ mainUpgrade1 = createIU(MAIN_IU, Version.createOSGi(2, 0, 0), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, null, NO_TP_DATA, true, update, NO_REQUIRES);
update = MetadataFactory.createUpdateDescriptor(MAIN_IU, new VersionRange("[1.0.0, 1.0.0]"), 0, "update description");
- mainUpgrade2 = createIU(MAIN_IU, new Version(3, 0, 0), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, null, NO_TP_DATA, true, update, NO_REQUIRES);
+ mainUpgrade2 = createIU(MAIN_IU, Version.createOSGi(3, 0, 0), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, null, NO_TP_DATA, true, update, NO_REQUIRES);
iu = new MetadataFactory.InstallableUnitDescription();
iu.setId(MAIN_IU);
- iu.setVersion(new Version(4, 0, 0));
+ iu.setVersion(Version.createOSGi(4, 0, 0));
iu.setSingleton(true);
iu.setUpdateDescriptor(update);
- iu.setLicense(new License(null, "Update Wizard Test License to Accept"));
+ iu.setLicenses(new ILicense[] {new License(null, "Update Wizard Test License to Accept", null)});
iu.setCapabilities(new IProvidedCapability[] {MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, MAIN_IU, iu.getVersion())});
mainUpgradeWithLicense = MetadataFactory.createInstallableUnit(iu);
+ createTestMetdataRepository(new IInstallableUnit[] {main, mainUpgrade1, mainUpgrade2, mainUpgradeWithLicense});
+
}
/**
* Tests the wizard when a prior resolution has been done.
* This is the SDK
*/
- public void testUpdateWizardResolved() throws ProvisionException {
- IUElementListRoot root = new IUElementListRoot();
- AvailableUpdateElement element = new AvailableUpdateElement(root, upgrade, top1, TESTPROFILE, true);
- root.setChildren(new Object[] {element});
- ProfileChangeRequest request = new ProfileChangeRequest(profile);
- request.removeInstallableUnits(new IInstallableUnit[] {top1});
- request.addInstallableUnits(new IInstallableUnit[] {upgrade});
- PlannerResolutionOperation op = getResolvedOperation(request);
- UpdateWizard wizard = new UpdateWizard(Policy.getDefault(), TESTPROFILE, root, new Object[] {element}, op, null);
+ public void testUpdateWizardResolved() {
+ UpdateOperation op = getProvisioningUI().getUpdateOperation(new IInstallableUnit[] {main}, null);
+ op.resolveModal(getMonitor());
+ UpdateWizard wizard = new UpdateWizard(getProvisioningUI(), op, op.getSelectedUpdates(), null);
WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
dialog.setBlockOnOpen(false);
dialog.open();
+ ProfileModificationJob longOp = null;
try {
SelectableIUsPage page1 = (SelectableIUsPage) wizard.getPage(SELECTION_PAGE);
@@ -94,28 +88,25 @@ public class UpdateWizardTest extends WizardTest {
assertTrue(page2.isPageComplete());
// if another operation is scheduled for this profile, we should not be allowed to proceed
- Job job = ProvisioningOperationRunner.schedule(getLongTestOperation(), StatusManager.LOG);
- assertTrue(page1.isPageComplete());
+ longOp = getLongTestOperation();
+ getProvisioningUI().schedule(longOp, StatusManager.LOG);
+ assertTrue(page2.isPageComplete());
// causes recalculation of plan and status
- wizard.getNextPage(page1);
+ wizard.recomputePlan(dialog);
// can't move to next page while op is running
- assertFalse(page1.isPageComplete());
- job.cancel();
-
+ assertFalse(page2.isPageComplete());
+ longOp.cancel();
} finally {
dialog.getShell().close();
+ if (longOp != null)
+ longOp.cancel();
}
}
- public void testUpdateWizardResolvedWithLicense() throws ProvisionException {
- IUElementListRoot root = new IUElementListRoot();
- AvailableUpdateElement element = new AvailableUpdateElement(root, mainUpgradeWithLicense, main, TESTPROFILE, true);
- root.setChildren(new Object[] {element});
- ProfileChangeRequest request = new ProfileChangeRequest(profile);
- request.removeInstallableUnits(new IInstallableUnit[] {main});
- request.addInstallableUnits(new IInstallableUnit[] {mainUpgradeWithLicense});
- PlannerResolutionOperation op = getResolvedOperation(request);
- UpdateWizard wizard = new UpdateWizard(Policy.getDefault(), TESTPROFILE, root, new Object[] {element}, op, null);
+ public void testUpdateWizardResolvedWithLicense() {
+ UpdateOperation op = getProvisioningUI().getUpdateOperation(new IInstallableUnit[] {main}, null);
+ op.resolveModal(getMonitor());
+ UpdateWizard wizard = new UpdateWizard(getProvisioningUI(), op, op.getSelectedUpdates(), null);
ProvisioningWizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
dialog.setBlockOnOpen(false);
dialog.open();
@@ -143,18 +134,12 @@ public class UpdateWizardTest extends WizardTest {
/**
* Tests the wizard when a prior resolution has been done, but is in error.
*/
- public void testUpdateWizardResolvedError() throws ProvisionException {
- IUElementListRoot root = new IUElementListRoot();
- AvailableUpdateElement element = new AvailableUpdateElement(root, mainUpgrade1, main, TESTPROFILE, true);
- AvailableUpdateElement element2 = new AvailableUpdateElement(root, mainUpgrade2, main, TESTPROFILE, true);
- root.setChildren(new Object[] {element, element2});
- ProfileChangeRequest request = new ProfileChangeRequest(profile);
- request.removeInstallableUnits(new IInstallableUnit[] {main});
- request.addInstallableUnits(new IInstallableUnit[] {mainUpgrade1, mainUpgrade2});
- PlannerResolutionOperation op = getResolvedOperation(request);
- UpdateWizard wizard = new UpdateWizard(Policy.getDefault(), TESTPROFILE, root, new Object[] {element, element2}, op, null);
- wizard.setSkipSelectionsPage(true);
- WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
+ public void testUpdateWizardResolvedError() {
+ UpdateOperation op = getProvisioningUI().getUpdateOperation(new IInstallableUnit[] {main}, null);
+ op.resolveModal(getMonitor());
+ op.setSelectedUpdates(op.getPossibleUpdates());
+ UpdateWizard wizard = new UpdateWizard(getProvisioningUI(), op, op.getSelectedUpdates(), null);
+ ProvisioningWizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
dialog.setBlockOnOpen(false);
dialog.open();
@@ -169,17 +154,12 @@ public class UpdateWizardTest extends WizardTest {
* Tests the wizard when we have a successful resolution and want to open
* directly on the resolution page
*/
- public void testUpdateWizardResolvedSkipSelections() throws ProvisionException {
- IUElementListRoot root = new IUElementListRoot();
- AvailableUpdateElement element = new AvailableUpdateElement(root, mainUpgrade1, main, TESTPROFILE, true);
- root.setChildren(new Object[] {element});
- ProfileChangeRequest request = new ProfileChangeRequest(profile);
- request.removeInstallableUnits(new IInstallableUnit[] {main});
- request.addInstallableUnits(new IInstallableUnit[] {mainUpgrade1});
- PlannerResolutionOperation op = getResolvedOperation(request);
- UpdateWizard wizard = new UpdateWizard(Policy.getDefault(), TESTPROFILE, root, new Object[] {element}, op, null);
+ public void testUpdateWizardResolvedSkipSelections() {
+ UpdateOperation op = getProvisioningUI().getUpdateOperation(new IInstallableUnit[] {main}, null);
+ op.resolveModal(getMonitor());
+ UpdateWizard wizard = new UpdateWizard(getProvisioningUI(), op, op.getSelectedUpdates(), null);
wizard.setSkipSelectionsPage(true);
- WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
+ ProvisioningWizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
dialog.setBlockOnOpen(false);
dialog.open();
@@ -196,31 +176,21 @@ public class UpdateWizardTest extends WizardTest {
* This is not the SDK workflow, but should be supported.
*/
public void testUpdateWizardUnresolved() {
- IUElementListRoot root = new IUElementListRoot();
- AvailableUpdateElement element = new AvailableUpdateElement(root, upgrade, top1, TESTPROFILE, true);
- root.setChildren(new Object[] {element});
-
- UpdateWizard wizard = new UpdateWizard(Policy.getDefault(), TESTPROFILE, root, new Object[] {element}, null, null);
+ Update update = new Update(main, mainUpgrade1);
+ UpdateOperation op = getProvisioningUI().getUpdateOperation(new IInstallableUnit[] {main}, null);
+ UpdateWizard wizard = new UpdateWizard(getProvisioningUI(), op, new Object[] {update}, null);
WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
dialog.setBlockOnOpen(false);
dialog.open();
try {
SelectableIUsPage page1 = (SelectableIUsPage) wizard.getPage(SELECTION_PAGE);
- assertFalse(page1.isPageComplete());
- // Will cause computation of a plan.
- ResolutionResultsWizardPage page2 = (ResolutionResultsWizardPage) wizard.getNextPage(page1);
- dialog.showPage(page2);
- assertTrue(page2.isPageComplete());
-
- // if another operation is scheduled for this profile, we should not be allowed to proceed
- Job job = ProvisioningOperationRunner.schedule(getLongTestOperation(), StatusManager.LOG);
+ // Page 1 should have selections
+ assertTrue(page1.isPageComplete());
+ // Should be able to resolve an unresolved operation
+ wizard.recomputePlan(dialog);
+ // Everything is still good
assertTrue(page1.isPageComplete());
- // causes recalculation of plan and status
- wizard.getNextPage(page1);
- // can't move to next page while op is running
- assertFalse(page1.isPageComplete());
- job.cancel();
} finally {
dialog.getShell().close();
@@ -230,17 +200,12 @@ public class UpdateWizardTest extends WizardTest {
/**
* Tests the wizard when multiple versions are available.
*/
- public void testBug277554MultipleVersions() throws ProvisionException {
- IUElementListRoot root = new IUElementListRoot();
- AvailableUpdateElement element = new AvailableUpdateElement(root, mainUpgrade1, main, TESTPROFILE, true);
- AvailableUpdateElement element2 = new AvailableUpdateElement(root, mainUpgrade2, main, TESTPROFILE, true);
- root.setChildren(new Object[] {element, element2});
- ProfileChangeRequest request = new ProfileChangeRequest(profile);
- request.removeInstallableUnits(new IInstallableUnit[] {main});
- request.addInstallableUnits(new IInstallableUnit[] {mainUpgrade2});
- PlannerResolutionOperation op = getResolvedOperation(request);
- UpdateWizard wizard = new UpdateWizard(Policy.getDefault(), TESTPROFILE, root, new Object[] {element2}, op, null);
- WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
+ public void testBug277554MultipleVersions() {
+
+ UpdateOperation op = getProvisioningUI().getUpdateOperation(new IInstallableUnit[] {main}, null);
+ op.resolveModal(getMonitor());
+ UpdateWizard wizard = new UpdateWizard(getProvisioningUI(), op, op.getSelectedUpdates(), null);
+ ProvisioningWizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
dialog.setBlockOnOpen(false);
dialog.open();
@@ -248,7 +213,7 @@ public class UpdateWizardTest extends WizardTest {
SelectableIUsPage page1 = (SelectableIUsPage) wizard.getPage(SELECTION_PAGE);
// should already have a plan
assertTrue("1.0", page1.isPageComplete());
- assertEquals("1.1", page1.getCheckedIUElements().length, 1);
+ assertEquals("1.1", 1, page1.getCheckedIUElements().length);
ResolutionResultsWizardPage page2 = (ResolutionResultsWizardPage) wizard.getNextPage(page1);
dialog.showPage(page2);
// should only have one root item in the resolution page

Back to the top