mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-22 01:58:47 +02:00
N°9088 Allow extension uninstallation from production-modules folder
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace Combodo\iTop\Test\UnitTest\Integration;
|
||||
|
||||
use Combodo\iTop\Test\UnitTest\ItopTestCase;
|
||||
use iTopExtension;
|
||||
use iTopExtensionsMap;
|
||||
use iTopExtensionsMapFake;
|
||||
use ModuleDiscovery;
|
||||
@@ -376,6 +377,44 @@ class WizStepModulesChoiceTest extends ItopTestCase
|
||||
$this->assertEquals($aExpectedFlags, $aFlags);
|
||||
}
|
||||
|
||||
public function ProviderGetAllExtensionsToDisplayInSetupMandatoryFlag()
|
||||
{
|
||||
return [
|
||||
'A manually added extension should not be mandatory by default' => [
|
||||
'bExtensionSource' => 'extensions',//iTopExtension::SOURCE_MANUAL
|
||||
'bDisableUninstallChecks' => false,
|
||||
'bExpectedMandatory' => false,
|
||||
],
|
||||
'A remotely added extension should be mandatory by default' => [
|
||||
'bExtensionSource' => 'data',//iTopExtension::SOURCE_REMOTE
|
||||
'bDisableUninstallChecks' => false,
|
||||
'bExpectedMandatory' => true,
|
||||
],
|
||||
'A remotely added extension should not be mandatory by default if uninstall checks has been disabled' => [
|
||||
'bExtensionSource' => 'data',//iTopExtension::SOURCE_REMOTE
|
||||
'bDisableUninstallChecks' => true,
|
||||
'bExpectedMandatory' => false,
|
||||
],
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider ProviderGetAllExtensionsToDisplayInSetupMandatoryFlag
|
||||
*/
|
||||
public function testGetAllExtensionsToDisplayInSetupMandatoryFlag($bExtensionSource, $bDisableUninstallChecks, $bExpectedMandatory)
|
||||
{
|
||||
$aExtensionsOnDiskOrDb = [
|
||||
'itop-ext1' => [
|
||||
'installed' => true,
|
||||
'source' => $bExtensionSource,
|
||||
],
|
||||
];
|
||||
$oMap = iTopExtensionsMapFake::createFromArray($aExtensionsOnDiskOrDb);
|
||||
$aExtensions = $oMap->GetAllExtensionsToDisplayInSetup(false, !$bDisableUninstallChecks);
|
||||
$this->assertEquals($bExpectedMandatory, $aExtensions['itop-ext1']->bMandatory);
|
||||
}
|
||||
|
||||
public function ProviderGetAddedAndRemovedExtensions()
|
||||
{
|
||||
return [
|
||||
|
||||
@@ -21,6 +21,7 @@ class iTopExtensionsMapFake extends iTopExtensionsMap
|
||||
$oExtension->aModules = $aExtension['modules'] ?? [];
|
||||
$oExtension->bCanBeUninstalled = $aExtension['uninstallable'] ?? null;
|
||||
$oExtension->sVersion = $aExtension['version'] ?? '1.0.0';
|
||||
$oExtension->sSource = $aExtension['source'] ?? iTopExtension::SOURCE_MANUAL;
|
||||
$oExtension->aModuleInfo = $aExtension['module_info'] ?? [];
|
||||
$oMap->AddExtension($oExtension);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user