예제 #1
0
  /** 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();
    }
  }
 protected ISelectableIUsPage createMainPage(IUElementListRoot input, Object[] selections) {
   mainPage = new SelectableIUsPage(ui, this, input, selections);
   mainPage.setTitle(ProvUIMessages.PreselectedIUInstallWizard_Title);
   mainPage.setDescription(ProvUIMessages.PreselectedIUInstallWizard_Description);
   ((SelectableIUsPage) mainPage).updateStatus(input, operation);
   return mainPage;
 }
예제 #3
0
  /**
   * 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();
    }
  }