mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-12 23:14:18 +01:00
N°8864 Added tests
This commit is contained in:
@@ -1029,4 +1029,4 @@ class RunTimeEnvironment
|
|||||||
|
|
||||||
return sprintf("Checked %d classes in %.1f ms. No error found.\n", $iCount, $fDuration * 1000.0);
|
return sprintf("Checked %d classes in %.1f ms. No error found.\n", $iCount, $fDuration * 1000.0);
|
||||||
}
|
}
|
||||||
} // End of class
|
} // End of class
|
||||||
|
|||||||
@@ -1368,6 +1368,52 @@ class WizStepModulesChoice extends WizardStep
|
|||||||
return ['WizStepModulesChoice', 'WizStepSummary'];
|
return ['WizStepModulesChoice', 'WizStepSummary'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function GetAddedAndRemovedExtensions($aSelectedExtensions)
|
||||||
|
{
|
||||||
|
$aExtensionsAdded = [];
|
||||||
|
$aExtensionsRemoved = [];
|
||||||
|
$aExtensionsNotUninstallable = [];
|
||||||
|
foreach ($this->oExtensionsMap->GetAllExtensionsWithPreviouslyInstalled() as $oExtension) {
|
||||||
|
/* @var \iTopExtension $oExtension */
|
||||||
|
$bSelected = in_array($oExtension->sCode, $aSelectedExtensions);
|
||||||
|
if ($oExtension->bInstalled && !$bSelected) {
|
||||||
|
$aExtensionsRemoved[$oExtension->sCode] = $oExtension->sLabel;
|
||||||
|
if (!$oExtension->CanBeUninstalled()) {
|
||||||
|
$aExtensionsNotUninstallable[$oExtension->sCode] = true;
|
||||||
|
}
|
||||||
|
} elseif (!$oExtension->bInstalled && $bSelected) {
|
||||||
|
$aExtensionsAdded[$oExtension->sCode] = $oExtension->sLabel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$sExtensionsAdded = '';
|
||||||
|
if (count($aExtensionsAdded) > 0) {
|
||||||
|
$sExtensionsAdded = '<ul>';
|
||||||
|
foreach ($aExtensionsAdded as $sExtensionCode) {
|
||||||
|
$sExtensionsAdded .= '<li>'.$sExtensionCode.'</li>';
|
||||||
|
}
|
||||||
|
$sExtensionsAdded .= '</ul>';
|
||||||
|
} else {
|
||||||
|
$sExtensionsAdded = '<ul><li>No extension added.</li></ul>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$sExtensionsRemoved = '';
|
||||||
|
if (count($aExtensionsRemoved) > 0) {
|
||||||
|
$sExtensionsRemoved = '<ul>';
|
||||||
|
foreach ($aExtensionsRemoved as $sCode => $sExtensionCode) {
|
||||||
|
$sForcedUninstall = '';
|
||||||
|
if (isset($aExtensionsNotUninstallable[$sCode])) {
|
||||||
|
$sForcedUninstall = ' (forced uninstallation)';
|
||||||
|
}
|
||||||
|
$sExtensionsRemoved .= '<li>'.$sExtensionCode.$sForcedUninstall.'</li>';
|
||||||
|
}
|
||||||
|
$sExtensionsRemoved .= '</ul>';
|
||||||
|
} else {
|
||||||
|
$sExtensionsRemoved = '<ul><li>No extension removed.</li></ul>';
|
||||||
|
}
|
||||||
|
return [$sExtensionsAdded, $sExtensionsRemoved];
|
||||||
|
}
|
||||||
|
|
||||||
public function ProcessParams($bMoveForward = true)
|
public function ProcessParams($bMoveForward = true)
|
||||||
{
|
{
|
||||||
// Accumulates the selected modules:
|
// Accumulates the selected modules:
|
||||||
@@ -1398,43 +1444,7 @@ class WizStepModulesChoice extends WizardStep
|
|||||||
$this->oWizard->SetParameter('old_addon', true);
|
$this->oWizard->SetParameter('old_addon', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
$aExtensionsAdded = [];
|
[$sExtensionsAdded, $sExtensionsRemoved] = $this->GetAddedAndRemovedExtensions($aExtensions);
|
||||||
$aExtensionsRemoved = [];
|
|
||||||
$aExtensionsNotUninstallable = [];
|
|
||||||
foreach ($this->oExtensionsMap->GetAllExtensionsWithPreviouslyInstalled() as $oExtension) {
|
|
||||||
/* @var \iTopExtension $oExtension */
|
|
||||||
$bSelected = in_array($oExtension->sCode, $aExtensions);
|
|
||||||
if ($oExtension->bInstalled && !$bSelected) {
|
|
||||||
$aExtensionsRemoved[$oExtension->sCode] = $oExtension->sLabel;
|
|
||||||
} elseif (!$oExtension->bInstalled && $bSelected) {
|
|
||||||
$aExtensionsAdded[$oExtension->sCode] = $oExtension->sLabel;
|
|
||||||
}
|
|
||||||
if (!$oExtension->CanBeUninstalled()) {
|
|
||||||
$aExtensionsNotUninstallable[$oExtension->sCode] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$sExtensionsAdded = '<ul><li>No extension added.</li></ul>';
|
|
||||||
if (count($aExtensionsAdded) > 0) {
|
|
||||||
$sExtensionsAdded = '<ul>';
|
|
||||||
foreach ($aExtensionsAdded as $sExtensionCode) {
|
|
||||||
$sExtensionsAdded .= '<li>'.$sExtensionCode.'</li>';
|
|
||||||
}
|
|
||||||
$sExtensionsAdded .= '</ul>';
|
|
||||||
}
|
|
||||||
|
|
||||||
$sExtensionsRemoved = '<ul><li>No extension removed.</li></ul>';
|
|
||||||
if (count($aExtensionsRemoved) > 0) {
|
|
||||||
$sExtensionsRemoved = '<ul>';
|
|
||||||
foreach ($aExtensionsRemoved as $sCode => $sExtensionCode) {
|
|
||||||
$sForcedUninstall = '';
|
|
||||||
if (isset($aExtensionsNotUninstallable[$sCode])) {
|
|
||||||
$sForcedUninstall = ' (forced uninstallation)';
|
|
||||||
}
|
|
||||||
$sExtensionsRemoved .= '<li>'.$sExtensionCode.$sForcedUninstall.'</li>';
|
|
||||||
}
|
|
||||||
$sExtensionsRemoved .= '</ul>';
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->oWizard->SetParameter('selected_modules', json_encode(array_keys($aModules)));
|
$this->oWizard->SetParameter('selected_modules', json_encode(array_keys($aModules)));
|
||||||
$this->oWizard->SetParameter('selected_extensions', json_encode($aExtensions));
|
$this->oWizard->SetParameter('selected_extensions', json_encode($aExtensions));
|
||||||
|
|||||||
@@ -7,30 +7,26 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$MySettings = array(
|
$MySettings = [
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// app_root_url: Root URL used for navigating within the application, or from an email to the application (you can put $SERVER_NAME$ as a placeholder for the server's name)
|
// app_root_url: Root URL used for navigating within the application, or from an email to the application (you can put $SERVER_NAME$ as a placeholder for the server's name)
|
||||||
// default: ''
|
// default: ''
|
||||||
'app_root_url' => 'http://%server(SERVER_NAME)?:localhost%/itop/iTop/',
|
'app_root_url' => 'http://%server(SERVER_NAME)?:localhost%/itop/iTop/',
|
||||||
|
|
||||||
|
];
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Modules specific settings
|
* Modules specific settings
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$MyModuleSettings = array(
|
$MyModuleSettings = [
|
||||||
);
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Data model modules to be loaded. Names are specified as relative paths
|
* Data model modules to be loaded. Names are specified as relative paths
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$MyModules = array(
|
$MyModules = [
|
||||||
);
|
];
|
||||||
?>
|
|
||||||
|
|||||||
@@ -7,30 +7,26 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$MySettings = array(
|
$MySettings = [
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// app_root_url: Root URL used for navigating within the application, or from an email to the application (you can put $SERVER_NAME$ as a placeholder for the server's name)
|
// app_root_url: Root URL used for navigating within the application, or from an email to the application (you can put $SERVER_NAME$ as a placeholder for the server's name)
|
||||||
// default: ''
|
// default: ''
|
||||||
'app_root_url' => 'http://' . (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'localhost') . '/itop/iTop/',
|
'app_root_url' => 'http://'.(isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'localhost').'/itop/iTop/',
|
||||||
|
|
||||||
|
];
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Modules specific settings
|
* Modules specific settings
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$MyModuleSettings = array(
|
$MyModuleSettings = [
|
||||||
);
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Data model modules to be loaded. Names are specified as relative paths
|
* Data model modules to be loaded. Names are specified as relative paths
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$MyModules = array(
|
$MyModules = [
|
||||||
);
|
];
|
||||||
?>
|
|
||||||
|
|||||||
@@ -257,4 +257,99 @@ class WizStepModulesChoiceTest extends ItopTestCase
|
|||||||
$this->assertEquals($aExpectedFlags, $aFlags);
|
$this->assertEquals($aExpectedFlags, $aFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function ProviderGetAddedAndRemovedExtensions()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'no extensions' => [
|
||||||
|
'aExtensions' => [],
|
||||||
|
|
||||||
|
'aSelected' => [],
|
||||||
|
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
|
||||||
|
'sExpectedRemovedList' => '<ul><li>No extension removed.</li></ul>',
|
||||||
|
],
|
||||||
|
'no extensions selected' => [
|
||||||
|
'aExtensions' => [
|
||||||
|
'itop-ext1' => [
|
||||||
|
'installed' => false,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'aSelected' => [],
|
||||||
|
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
|
||||||
|
'sExpectedRemovedList' => '<ul><li>No extension removed.</li></ul>',
|
||||||
|
],
|
||||||
|
'no extensions removed' => [
|
||||||
|
'aExtensions' => [
|
||||||
|
'itop-ext1' => [
|
||||||
|
'installed' => true,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'aSelected' => ['itop-ext1'],
|
||||||
|
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
|
||||||
|
'sExpectedRemovedList' => '<ul><li>No extension removed.</li></ul>',
|
||||||
|
],
|
||||||
|
'One added extension' => [
|
||||||
|
'aExtensions' => [
|
||||||
|
'itop-ext1' => [
|
||||||
|
'installed' => false,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'aSelected' => ['itop-ext1'],
|
||||||
|
'sExpectedAddedList' => '<ul><li>itop-ext1</li></ul>',
|
||||||
|
'sExpectedRemovedList' => '<ul><li>No extension removed.</li></ul>',
|
||||||
|
],
|
||||||
|
'One removed extension' => [
|
||||||
|
'aExtensions' => [
|
||||||
|
'itop-ext1' => [
|
||||||
|
'installed' => true,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'aSelected' => [],
|
||||||
|
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
|
||||||
|
'sExpectedRemovedList' => '<ul><li>itop-ext1</li></ul>',
|
||||||
|
],
|
||||||
|
'Forced removed extension' => [
|
||||||
|
'aExtensions' => [
|
||||||
|
'itop-ext1' => [
|
||||||
|
'installed' => true,
|
||||||
|
'uninstallable' => false,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'aSelected' => [],
|
||||||
|
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
|
||||||
|
'sExpectedRemovedList' => '<ul><li>itop-ext1 (forced uninstallation)</li></ul>',
|
||||||
|
],
|
||||||
|
'added and removed extensions' => [
|
||||||
|
'aExtensions' => [
|
||||||
|
'itop-ext-added1' => [
|
||||||
|
'installed' => false,
|
||||||
|
],
|
||||||
|
'itop-ext-added2' => [
|
||||||
|
'installed' => false,
|
||||||
|
],
|
||||||
|
'itop-ext-removed1' => [
|
||||||
|
'installed' => true,
|
||||||
|
],
|
||||||
|
'itop-ext-removed2' => [
|
||||||
|
'installed' => true,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'aSelected' => ['itop-ext-added1', 'itop-ext-added2'],
|
||||||
|
'sExpectedAddedList' => '<ul><li>itop-ext-added1</li><li>itop-ext-added2</li></ul>',
|
||||||
|
'sExpectedRemovedList' => '<ul><li>itop-ext-removed1</li><li>itop-ext-removed2</li></ul>',
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider ProviderGetAddedAndRemovedExtensions
|
||||||
|
*/
|
||||||
|
public function testGetAddedAndRemovedExtensions($aExtensions, $aSelectedExtensions, $sExpectedAddedList, $sExpectedRemovedList)
|
||||||
|
{
|
||||||
|
$this->oStep->setExtensionMap(iTopExtensionsMapFake::createFromArray($aExtensions));
|
||||||
|
[$sAddedList, $sRemovedList] = $this->oStep->GetAddedAndRemovedExtensions($aSelectedExtensions);
|
||||||
|
$this->assertEquals($sExpectedAddedList, $sAddedList);
|
||||||
|
$this->assertEquals($sExpectedRemovedList, $sRemovedList);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,9 +12,11 @@ class iTopExtensionsMapFake extends iTopExtensionsMap
|
|||||||
public static function createFromArray($aExtensions)
|
public static function createFromArray($aExtensions)
|
||||||
{
|
{
|
||||||
$oMap = new static();
|
$oMap = new static();
|
||||||
|
|
||||||
foreach ($aExtensions as $sCode => $aExtension) {
|
foreach ($aExtensions as $sCode => $aExtension) {
|
||||||
$oExtension = new iTopExtension();
|
$oExtension = new iTopExtension();
|
||||||
$oExtension->sCode = $sCode;
|
$oExtension->sCode = $sCode;
|
||||||
|
$oExtension->sLabel = $sCode;
|
||||||
$oExtension->bInstalled = $aExtension['installed'];
|
$oExtension->bInstalled = $aExtension['installed'];
|
||||||
$oExtension->aModules = $aExtension['modules'] ?? [];
|
$oExtension->aModules = $aExtension['modules'] ?? [];
|
||||||
$oExtension->bCanBeUninstalled = $aExtension['uninstallable'] ?? null;
|
$oExtension->bCanBeUninstalled = $aExtension['uninstallable'] ?? null;
|
||||||
|
|||||||
Reference in New Issue
Block a user