N°10021 Fix handling of removed extension that are also part of product

This commit is contained in:
Timmy38
2026-09-03 10:13:49 +02:00
committed by GitHub
parent 5597040a8a
commit aef80d60a8
4 changed files with 111 additions and 35 deletions

View File

@@ -359,6 +359,40 @@ XML;
$oExtensionMap->CheckExtensionsValidity();
}
public function testExtensionsFoundInDBShouldBeMarkedAsInstalled()
{
$oExtensionsMap = iTopExtensionsMapFake::createFromArray([
'itop-installed' => [
'installed' => false,
],
'itop-not-installed' => [
'installed' => false,
]
]);
$oExtensionsMap->AddInstalledExtensionInfo('itop-installed');
$oExtensionsMap->LoadInstalledExtensionsFromDatabase(new \Config());
$this->assertTrue($oExtensionsMap->GetFromExtensionCode('itop-installed')->bInstalled);
$this->assertFalse($oExtensionsMap->GetFromExtensionCode('itop-not-installed')->bInstalled);
}
public function testExtensionSourceMismatchShouldBeFlaggedAsRemoved()
{
$sExtensionCode = 'itop-problem-mgmt';
$oExtensionsMap = iTopExtensionsMapFake::createFromArray([
$sExtensionCode => [
'installed' => false,
'source' => iTopExtension::SOURCE_WIZARD,
]
]);
$oExtensionsMap->AddInstalledExtensionInfo($sExtensionCode, '6.4.0', iTopExtension::SOURCE_MANUAL);
$oExtensionsMap->LoadInstalledExtensionsFromDatabase(new \Config());
$oInstalledExtension = $oExtensionsMap->aInstalledExtensions[$sExtensionCode.'/6.4.0'];
$this->assertTrue($oInstalledExtension->bRemovedFromDisk);
}
private function CreateFixtureContext(string $sEnvPrefix): array
{
$sEnvironment = str_replace('.', '-', uniqid($sEnvPrefix, true));