From a4345d03113f91cfba939c723b2c2ffcaa2d9ff2 Mon Sep 17 00:00:00 2001 From: odain Date: Wed, 20 May 2026 14:56:55 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B09567=20-=20fix=20back=20to=20setup=20fro?= =?UTF-8?q?m=20extension=20management=20-=20extension=20screen=20missing?= =?UTF-8?q?=20when=20back=20after=20audit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit N°9567 - fix again --- setup/wizardsteps/WizStepModulesChoice.php | 3 ++- .../setup/WizStepModulesChoiceTest.php | 22 ++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/setup/wizardsteps/WizStepModulesChoice.php b/setup/wizardsteps/WizStepModulesChoice.php index 08f0a2327d..fdc3d48d9a 100644 --- a/setup/wizardsteps/WizStepModulesChoice.php +++ b/setup/wizardsteps/WizStepModulesChoice.php @@ -175,7 +175,9 @@ class WizStepModulesChoice extends AbstractWizStepInstall ["class" => "WizStepUpgradeMiscParams","state" => ""], ]; $i = 0; + $this->aSteps = null; while (null != $this->GetStepInfo($i)) { + $this->aSteps = null; $aSteps [] = ["class" => "WizStepModulesChoice","state" => "$i"]; $i++; } @@ -709,7 +711,6 @@ EOF // Found an "installation.xml" file, let's use this definition for the wizard $aParams = new XMLParameters($this->GetSourceFilePath()); $this->aSteps = $aParams->Get('steps', []); - if ($index + 1 >= count($this->aSteps)) { //make sure we also cache next step as well $aOptions = $this->oExtensionsMap->GetAllExtensionsOptionInfo($bRemoteExtensionsShouldBeMandatory); diff --git a/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php b/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php index 51b8d0f3b5..45ef05f7a6 100644 --- a/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php +++ b/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php @@ -6,7 +6,6 @@ use Combodo\iTop\Test\UnitTest\ItopTestCase; use iTopExtensionsMap; use iTopExtensionsMapFake; use ModuleDiscovery; -use WepPageFake; use WizardController; use WizStepModulesChoiceFake; use XMLParameters; @@ -1431,4 +1430,25 @@ HTML, } $this->assertEquals($expected, $this->oWizStepModulesChoiceFake->GetWizardSteps()); } + + public function testGetWizardStepsWithoutAnyExtension() + { + $this->oWizard->SetParameter('source_dir', __DIR__.'/ressources'); + $oExtensionMap = $this->createMock(iTopExtensionsMap::class); + $oExtensionMap->expects(self::any())->method('GetAllExtensionsOptionInfo')->willReturn([]); + + $this->oWizStepModulesChoiceFake->setExtensionMap($oExtensionMap); + + $expected = [ + ["class" => "WizStepWelcome","state" => ""], + ["class" => "WizStepInstallOrUpgrade","state" => ""], + ["class" => "WizStepDetectedInfo","state" => ""], + ["class" => "WizStepUpgradeMiscParams","state" => ""], + ]; + + for ($i = 0;$i <= 4; $i++) { + $expected [] = ["class" => "WizStepModulesChoice","state" => "".$i]; + } + $this->assertEquals($expected, $this->oWizStepModulesChoiceFake->GetWizardSteps()); + } }