diff --git a/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php b/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php index d4f8b30791..cd438e1f25 100644 --- a/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php +++ b/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php @@ -672,7 +672,7 @@ class WizStepModulesChoiceTest extends ItopTestCase 'already_included' => false, ], ], - '#node16 - A non installed non uninstallable sub extension should not force its parent flags' => [ + '#node16 - A non installed sub extension should not force its parent flags' => [ 'aExtensionsOnDiskOrDb' => [ 'itop-ext1' => [ 'installed' => true, @@ -808,6 +808,52 @@ class WizStepModulesChoiceTest extends ItopTestCase $this->assertEquals($aExpectedFlags, $aFlags); } + /** + * #node17 an extension with all of its modules already selected in previous steps should be checked and disabled, with the "already_included" flag set to true + */ + public function testComputeChoiceFlagsShouldReturnAlreadyIncludedWhenAllModulesAreInPreviousSteps(): void + { + $this->oWizard->SetParameter('source_dir', __DIR__.'/ressources'); + $this->oWizard->SetParameter('selected_components', json_encode([ + ['_0' => '_0'],//Selecting itop-config-mgmt-core + ])); + + $oWizStepModulesChoice = new WizStepModulesChoiceFake($this->oWizard, '1'); + $oWizStepModulesChoice->setExtensionMap(iTopExtensionsMapFake::createFromArray([ + 'itop-ext1' => [ + 'installed' => false, + 'modules' => [ + 'itop-config-mgmt', + 'itop-attachments', + ], + ], + ])); + + $aFlags = $oWizStepModulesChoice->ComputeChoiceFlags( + [ + 'extension_code' => 'itop-ext1', + 'uninstallable' => true, + ], + '_0', + [], + false, + false + ); + + $aExpectedFlags = [ + 'uninstallable' => true, + 'missing' => false, + 'installed' => false, + 'disabled' => true, + 'checked' => true, + 'dependency_issue' => false, + 'mandatory' => false, + 'remote' => false, + 'already_included' => true, + ]; + $this->assertEquals($aExpectedFlags, $aFlags); + } + public function ProviderCanMoveForwardFromChoiceFlags(): array { return [ diff --git a/tests/php-unit-tests/unitary-tests/setup/ressources/compute_choice_flags.flowchart.fun b/tests/php-unit-tests/unitary-tests/setup/ressources/compute_choice_flags.flowchart.fun index aad4280f2f..cdc3332db0 100644 --- a/tests/php-unit-tests/unitary-tests/setup/ressources/compute_choice_flags.flowchart.fun +++ b/tests/php-unit-tests/unitary-tests/setup/ressources/compute_choice_flags.flowchart.fun @@ -4,30 +4,30 @@ Removed from disk Yes : Forced uninstallation, unchecked & disabled .color_red #node1 No : Mandatory & part of package Yes : Forced installation, checked & disabled .color_orange #node2 - No : Has sub options - Yes : Sub option checked + No : Modules included in package + Yes : Forced installation, checked & disabled .color_orange #node17 + No : Has sub options & Sub option checked Yes : Sub option disabled Yes : checked & disabled .color_orange #node3 - No : force checked .color_yellow #node4 - #node16 No : (Dependency issue) - No : Dependency issue - Yes : Installed - No : unchecked & disabled .color_orange #node5 - Yes : Force uninstall - No : checked & disabled .color_orange #node6 - Yes : Selected - Yes : checked & enabled .color_green #node7 - No : unchecked & enabled .color_green #node8 - No : Installed - No : Selected - No : unchecked & enabled .color_green #node9 - Yes : checked & enabled .color_green #node10 - Yes : Remote | cannot_be_uninstalled - No : Selected - No : unchecked & enabled .color_green #node11 - Yes : checked & enabled .color_green #node12 + No : checked & enabled .color_green #node4 + No : Dependency issue #node16 + Yes : Installed + No : unchecked & disabled .color_orange #node5 Yes : Force uninstall - No : checked & disabled .color_orange #node13 + No : checked & disabled .color_orange #node6 Yes : Selected - No : unchecked & enabled .color_green #node14 - Yes : checked & enabled .color_green #node15 + Yes : checked & enabled .color_green #node7 + No : unchecked & enabled .color_green #node8 + No : Installed + No : Selected + No : unchecked & enabled .color_green #node9 + Yes : checked & enabled .color_green #node10 + Yes : Remote | cannot_be_uninstalled + No : Selected + No : unchecked & enabled .color_green #node11 + Yes : checked & enabled .color_green #node12 + Yes : Force uninstall + No : checked & disabled .color_orange #node13 + Yes : Selected + No : unchecked & enabled .color_green #node14 + Yes : checked & enabled .color_green #node15