/** Tests the wizard when the uninstall is preresolved. This is the normal SDK workflow. */ public void testUninstallWizardResolved() { ArrayList<IInstallableUnit> iusInvolved = new ArrayList<IInstallableUnit>(); iusInvolved.add(top1); iusInvolved.add(top2); UninstallOperation op = getProvisioningUI().getUninstallOperation(iusInvolved, null); op.resolveModal(getMonitor()); UninstallWizard wizard = new UninstallWizard(getProvisioningUI(), op, iusInvolved, null); WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard); dialog.setBlockOnOpen(false); dialog.create(); dialog.open(); ProfileModificationJob longOp = null; try { SelectableIUsPage page1 = (SelectableIUsPage) wizard.getPage(SELECTION_PAGE); // We should have a good plan assertTrue(page1.isPageComplete()); 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 longOp = getLongTestOperation(); getProvisioningUI().schedule(longOp, StatusManager.LOG); assertTrue(page1.isPageComplete()); // causes recalculation of plan and status wizard.recomputePlan(dialog); // can't move to next page while op is running assertFalse(page1.isPageComplete()); longOp.cancel(); } finally { dialog.getShell().close(); if (longOp != null) longOp.cancel(); } }
/** * Tests the wizard without the resolution having been done ahead of time. This is not the SDK * workflow, but should be supported. */ public void testUninstallWizardUnresolved() { // This test is pretty useless right now but at least it opens the wizard ArrayList<IInstallableUnit> iusInvolved = new ArrayList<IInstallableUnit>(); iusInvolved.add(top1); iusInvolved.add(top2); UninstallOperation operation = getProvisioningUI().getUninstallOperation(iusInvolved, null); UninstallWizard wizard = new UninstallWizard(getProvisioningUI(), operation, iusInvolved, null); WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard); dialog.setBlockOnOpen(false); dialog.create(); dialog.open(); try { SelectableIUsPage page1 = (SelectableIUsPage) wizard.getPage(SELECTION_PAGE); assertTrue(page1.isPageComplete()); // Should be able to resolve a plan wizard.recomputePlan(dialog); // Still ok assertTrue(page1.isPageComplete()); } finally { dialog.getShell().close(); } }