diff --git a/tests/php-unit-tests/unitary-tests/datamodels/2.x/combodo-data-feature-removal/simulate-audit-from-setup.php b/tests/php-unit-tests/unitary-tests/datamodels/2.x/combodo-data-feature-removal/simulate-audit-from-setup.php index 8ed3a18ef4..3620055f43 100644 --- a/tests/php-unit-tests/unitary-tests/datamodels/2.x/combodo-data-feature-removal/simulate-audit-from-setup.php +++ b/tests/php-unit-tests/unitary-tests/datamodels/2.x/combodo-data-feature-removal/simulate-audit-from-setup.php @@ -6,12 +6,6 @@ require_once(dirname(__DIR__, 6).'/approot.inc.php'); require_once(APPROOT.'application/startup.inc.php'); require_once(APPROOT.'setup/setuputils.class.inc.php'); -$aParams = [ - "exec_module" => "combodo-data-feature-removal", - "exec_page" => "index.php", - 'exec_env' => 'production', -]; - new ContextTag(ContextTag::TAG_SETUP); $sToken = SetupUtils::CreateSetupToken(); @@ -34,24 +28,45 @@ function GetLastestInstallFile(): ?string return $sLastFilePath; } -$aRemovedExtensions = [ - 'itop-container-mgmt' => 'Containerization', -]; - $sPath = GetLastestInstallFile(); if (is_null($sPath)) { - throw new Exception("$sPath no installation XM. Launch a setup...."); + throw new Exception("$sPath no installation XML. Launch a setup...."); } $aParams = new XMLParameters($sPath); -$aSelectedModules = array_filter($aParams->Get('selected_modules', []), static function ($element) { - global $aRemovedExtensions; - return ! array_key_exists($element, $aRemovedExtensions); -}); +$aSelectedModules = $aParams->Get('selected_modules', []); +$aSelectedExtensions = $aParams->Get('selected_extensions', []); -$aSelectedExtensions = array_filter($aParams->Get('selected_extensions', []), static function ($element) { - global $aRemovedExtensions; - return ! array_key_exists($element, $aRemovedExtensions); -}); +$sAddedExtensions = utils::ReadParam('added_extensions', ''); +$aAddedExtensions = []; +if (mb_strlen($sAddedExtensions) > 0) { + $aAddedExtensions = explode(',', $sAddedExtensions); +} +$oExtensionMap = new iTopExtensionsMap(); +foreach ($aAddedExtensions as $sExtensionCode) { + if (mb_strlen($sExtensionCode) <= 0) { + continue; + } + $oExtension = $oExtensionMap->GetFromExtensionCode($sExtensionCode); + $aSelectedExtensions[] = $oExtension->sCode; + foreach ($oExtension->aModules as $sModuleCode) { + if (!in_array($sModuleCode, $aSelectedModules)) { + $aSelectedModules[] = $sModuleCode; + } + } +} + +$sRemovedExtensions = utils::ReadParam('removed_modules', '',false, 'raw'); +$aRemovedExtensionsAndModules = []; +if (mb_strlen($sRemovedExtensions) > 0) { + $aRemovedExtensionsAndModules = explode(',', $sRemovedExtensions); +} + +$aSelectedModules = array_filter($aSelectedModules, fn($element) => !in_array($element, $aRemovedExtensionsAndModules)); +$aSelectedExtensions = array_filter($aSelectedExtensions, fn($element) => !in_array($element, $aRemovedExtensionsAndModules)); +$aRemovedExtensionsAndModules = array_filter($aRemovedExtensionsAndModules, fn($element) => !is_null($oExtensionMap->GetFromExtensionCode($element))); + +$aRemovedExtensions = array_combine($aRemovedExtensionsAndModules, $aRemovedExtensionsAndModules); +$aAddedExtensions = array_combine($aAddedExtensions, $aAddedExtensions); $aPostParams = [ "auth_user" => 'admin', @@ -62,8 +77,9 @@ $aPostParams = [ 'selected_modules' => utils::HtmlEntities(json_encode($aSelectedModules)), 'selected_extensions' => utils::HtmlEntities(json_encode($aSelectedExtensions)), 'removed_extensions' => utils::HtmlEntities(json_encode($aRemovedExtensions)), - 'force-uninstall' => "on", - 'use_symbolic_links' => "", + 'added_extensions' => utils::HtmlEntities(json_encode($aAddedExtensions)), + 'force-uninstall' => 'on', + 'use_symbolic_links' => '', ]; $sHiddenPostedInput = "";