Merge remote-tracking branch 'origin/support/3.1' into develop

This commit is contained in:
Romain Quetiez
2023-08-18 14:15:28 +02:00
89 changed files with 1691 additions and 890 deletions

View File

@@ -10,9 +10,6 @@ use Combodo\iTop\Application\Helper\WebResourcesHelper;
use Combodo\iTop\Test\UnitTest\ItopTestCase;
/**
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
* @covers \WebPage
*/
class WebResourcesHelperTest extends ItopTestCase

View File

@@ -14,10 +14,6 @@ use SecurityException;
/**
* We need the metamodel started as this is a dependency of {@link RuntimeDashboard}
*
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
*
* @since 2.7.8 3.0.3 3.1.0 N°4449 Test Full Path Disclosure in Dashboard
*/
class RuntimeDashboardTest extends ItopDataTestCase

View File

@@ -44,14 +44,11 @@ use Dict;
/**
* @group itopRequestMgmt
* @group itopServiceMgmt
*
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
*/
class CriterionConversionTest extends ItopDataTestCase
{
const CREATE_TEST_ORG = true;
const CREATE_TEST_ORG = false;
const USE_TRANSACTION = false;
/**
* @dataProvider ToOqlProvider
@@ -409,9 +406,7 @@ class CriterionConversionTest extends ItopDataTestCase
* @dataProvider OqlProvider
*
* @param $sOQL
*
* @param $sExpectedOQL
*
* @param $aExpectedCriterion
*
* @throws \DictExceptionUnknownLanguage
@@ -425,7 +420,7 @@ class CriterionConversionTest extends ItopDataTestCase
$this->CreateTagData(TAG_CLASS, TAG_ATTCODE, 'tag1', 'First');
$this->CreateTagData(TAG_CLASS, TAG_ATTCODE, 'tag2', 'Second');
$this->OqlToSearchToOqlAltLanguage($sOQL, $sExpectedOQL, $aExpectedCriterion, "EN US");
$this->OqlToSearchToOqlAltLanguage($sOQL, $sExpectedOQL, $aExpectedCriterion);
}
function OqlProvider()
@@ -589,9 +584,7 @@ class CriterionConversionTest extends ItopDataTestCase
* @dataProvider OqlProviderDates
*
* @param $sOQL
*
* @param $sExpectedOQL
*
* @param $aExpectedCriterion
*
* @throws \DictExceptionUnknownLanguage
@@ -599,33 +592,11 @@ class CriterionConversionTest extends ItopDataTestCase
* @throws \OQLException
* @throws \CoreException
*/
function testOqlToForSearchToOqlAltLanguageFR($sOQL, $sExpectedOQL, $aExpectedCriterion)
function testOqlToForSearchToOqlAltLanguage($sOQL, $sExpectedOQL, $aExpectedCriterion)
{
\MetaModel::GetConfig()->Set('date_and_time_format', array('default' => array('date' => 'Y-m-d', 'time' => 'H:i:s', 'date_time' => '$date $time')));
$this->OqlToSearchToOqlAltLanguage($sOQL, $sExpectedOQL, $aExpectedCriterion, "FR FR");
$this->OqlToSearchToOqlAltLanguage($sOQL, $sExpectedOQL, $aExpectedCriterion);
}
/**
* @dataProvider OqlProviderDates
*
* @param $sOQL
*
* @param $sExpectedOQL
*
* @param $aExpectedCriterion
*
* @throws \DictExceptionUnknownLanguage
* @throws \MissingQueryArgument
* @throws \OQLException
* @throws \CoreException
*/
function testOqlToForSearchToOqlAltLanguageEN($sOQL, $sExpectedOQL, $aExpectedCriterion)
{
\MetaModel::GetConfig()->Set('date_and_time_format', array('default' => array('date' => 'Y-m-d', 'time' => 'H:i:s', 'date_time' => '$date $time')));
$this->OqlToSearchToOqlAltLanguage($sOQL, $sExpectedOQL, $aExpectedCriterion, "EN US");
}
function OqlProviderDates()
{
return array(
@@ -706,26 +677,18 @@ class CriterionConversionTest extends ItopDataTestCase
/**
*
* @param $sOQL
*
* @param $sExpectedOQL
*
* @param $aExpectedCriterion
*
* @param $sLanguageCode
*
* @throws \CoreException
* @throws \DictExceptionUnknownLanguage
* @throws \MissingQueryArgument
* @throws \OQLException
*/
function OqlToSearchToOqlAltLanguage($sOQL, $sExpectedOQL, $aExpectedCriterion, $sLanguageCode )
function OqlToSearchToOqlAltLanguage($sOQL, $sExpectedOQL, $aExpectedCriterion)
{
$this->debug($sOQL);
Dict::SetUserLanguage($sLanguageCode);
$oSearchForm = new SearchForm();
$oSearch = DBSearch::FromOQL($sOQL);
$aFields = $oSearchForm->GetFields(new DBObjectSet($oSearch));

View File

@@ -33,9 +33,6 @@ use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
/**
* @group itopRequestMgmt
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
*/
class CriterionParserTest extends ItopDataTestCase
{

View File

@@ -29,14 +29,10 @@ use Exception;
/**
* @group itopRequestMgmt
*
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
*/
class SearchFormTest extends ItopDataTestCase
{
const CREATE_TEST_ORG = true;
const CREATE_TEST_ORG = false;
/**
* @dataProvider GetFieldsProvider

View File

@@ -16,11 +16,6 @@ if (!defined('DEBUG_UNIT_TEST')) {
define('DEBUG_UNIT_TEST', true);
}
/**
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
*/
class StatusIncTest extends ItopTestCase {
/**
@@ -67,7 +62,10 @@ class StatusIncTest extends ItopTestCase {
$this->assertTrue(true);
}
public function testStatusStartupWrongDbPwd()
/**
* @runInSeparateProcess
*/
public function testStatusStartupWrongDbPwd()
{
$this->RequireOnceItopFile('core/cmdbobject.class.inc.php');
$this->RequireOnceItopFile('application/utils.inc.php');

View File

@@ -8,6 +8,7 @@
namespace Combodo\iTop\Test\UnitTest\Status;
use Combodo\iTop\Test\UnitTest\ItopTestCase;
use Config;
class StatusTest extends ItopTestCase
{
@@ -25,10 +26,18 @@ class StatusTest extends ItopTestCase
}
protected function GetPHPCommand()
{
$this->RequireOnceItopFile('application/utils.inc.php');
$oConfig = new Config(ITOP_DEFAULT_CONFIG_FILE);
return $oConfig->Get('php_path');
}
public function testStatusGood() {
$sPath = APPROOT.'/webservices/status.php';
exec("php $sPath", $aOutput, $iRet);
$sPHP = $this->GetPHPCommand();
exec("$sPHP $sPath", $aOutput, $iRet);
$this->assertEquals(0, $iRet, "Problem executing status page: $sPath, $iRet, aOutput:\n".var_export($aOutput, true));
}
@@ -39,7 +48,8 @@ class StatusTest extends ItopTestCase
{
$sPath = APPROOT.'/webservices/status.php';
exec("php $sPath", $aOutput, $iRet);
$sPHP = $this->GetPHPCommand();
exec("$sPHP $sPath", $aOutput, $iRet);
$sAdditionalInfo = "aOutput:\n".var_export($aOutput, true).'.';
//Check response

View File

@@ -8,11 +8,6 @@ namespace Combodo\iTop\Test\UnitTest\Application;
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
/**
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
*/
class TestAutoload extends ItopDataTestCase
{

View File

@@ -2,16 +2,11 @@
namespace Combodo\iTop\Test\UnitTest\Application\TwigBase;
use Combodo\iTop\Portal\Twig\AppExtension;
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
use Combodo\iTop\Portal\Twig\AppExtension;
use Twig\Environment;
use Twig\Loader\FilesystemLoader;
/**
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
*/
class TwigTest extends ItopDataTestCase
{
protected function setUp(): void

View File

@@ -9,6 +9,7 @@ namespace Combodo\iTop\Test\UnitTest\Service\Events;
use Combodo\iTop\Service\Events\Description\EventDescription;
use Combodo\iTop\Service\Events\EventData;
use Combodo\iTop\Service\Events\EventService;
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
use Combodo\iTop\Test\UnitTest\ItopTestCase;
use ContextTag;
use CoreException;
@@ -20,7 +21,7 @@ use TypeError;
* @package Combodo\iTop\Test\UnitTest\Application\Service
*
*/
class EventTest extends ItopTestCase
class EventTest extends ItopDataTestCase
{
const USE_TRANSACTION = false;
const CREATE_TEST_ORG = false;
@@ -45,7 +46,7 @@ class EventTest extends ItopTestCase
public function testRegisterBadCallback($callback)
{
$this->expectException(TypeError::class);
EventService::RegisterListener('event', $callback);
$this->EventService_RegisterListener('event', $callback);
}
public function BadCallbackProvider()
@@ -60,7 +61,7 @@ class EventTest extends ItopTestCase
public function testNoParameterCallbackFunction()
{
$sId = EventService::RegisterListener('event', function () {
$sId = $this->EventService_RegisterListener('event', function () {
$this->debug("Closure: event received !!!");
self::IncrementCallCount();
});
@@ -82,7 +83,7 @@ class EventTest extends ItopTestCase
public function testMethodCallbackFunction(callable $callback)
{
EventService::RegisterEvent(new EventDescription('event', [], 'test', '', [], ''));
$sId = EventService::RegisterListener('event', $callback);
$sId = $this->EventService_RegisterListener('event', $callback);
$this->debug("Registered 'event' with id $sId");
self::$iEventCalls = 0;
@@ -109,7 +110,7 @@ class EventTest extends ItopTestCase
{
EventService::RegisterEvent(new EventDescription('event_a', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
EventService::RegisterListener('event_a', array($oReceiver, 'BrokenCallback'));
$this->EventService_RegisterListener('event_a', array($oReceiver, 'BrokenCallback'));
$this->expectException(TypeError::class);
EventService::FireEvent(new EventData('event_a'));
@@ -119,7 +120,7 @@ class EventTest extends ItopTestCase
{
EventService::RegisterEvent(new EventDescription('event_a', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
EventService::RegisterListener('event_a', array($oReceiver, 'OnEvent1'));
$this->EventService_RegisterListener('event_a', array($oReceiver, 'OnEvent1'));
self::$iEventCalls = 0;
EventService::FireEvent(new EventData('event_a'));
@@ -139,15 +140,15 @@ class EventTest extends ItopTestCase
EventService::RegisterEvent(new EventDescription('event_a', [], 'test', '', [], ''));
EventService::RegisterEvent(new EventDescription('event_b', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
EventService::RegisterListener('event_a', array($oReceiver, 'OnEvent1'));
EventService::RegisterListener('event_a', array($oReceiver, 'OnEvent2'));
EventService::RegisterListener('event_a', array('Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver', 'OnStaticEvent1'));
EventService::RegisterListener('event_a', 'Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver::OnStaticEvent2');
$this->EventService_RegisterListener('event_a', array($oReceiver, 'OnEvent1'));
$this->EventService_RegisterListener('event_a', array($oReceiver, 'OnEvent2'));
$this->EventService_RegisterListener('event_a', array('Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver', 'OnStaticEvent1'));
$this->EventService_RegisterListener('event_a', 'Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver::OnStaticEvent2');
EventService::RegisterListener('event_b', array($oReceiver, 'OnEvent1'));
EventService::RegisterListener('event_b', array($oReceiver, 'OnEvent2'));
EventService::RegisterListener('event_b', array('Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver', 'OnStaticEvent1'));
EventService::RegisterListener('event_b', 'Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver::OnStaticEvent2');
$this->EventService_RegisterListener('event_b', array($oReceiver, 'OnEvent1'));
$this->EventService_RegisterListener('event_b', array($oReceiver, 'OnEvent2'));
$this->EventService_RegisterListener('event_b', array('Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver', 'OnStaticEvent1'));
$this->EventService_RegisterListener('event_b', 'Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver::OnStaticEvent2');
self::$iEventCalls = 0;
EventService::FireEvent(new EventData('event_a'));
@@ -162,13 +163,13 @@ class EventTest extends ItopTestCase
{
EventService::RegisterEvent(new EventDescription('event1', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
self::$iEventCalls = 0;
@@ -180,8 +181,8 @@ class EventTest extends ItopTestCase
{
EventService::RegisterEvent(new EventDescription('event1', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
EventService::RegisterListener('event1', [$oReceiver, 'OnEventWithData'], '');
EventService::RegisterListener('event1', [$oReceiver, 'OnEventWithData'], '');
$this->EventService_RegisterListener('event1', [$oReceiver, 'OnEventWithData'], '');
$this->EventService_RegisterListener('event1', [$oReceiver, 'OnEventWithData'], '');
self::$iEventCalls = 0;
EventService::FireEvent(new EventData('event1', '', ['text' => 'Event Data 1']));
@@ -193,11 +194,11 @@ class EventTest extends ItopTestCase
EventService::RegisterEvent(new EventDescription('event1', [], 'test', '', [], ''));
EventService::RegisterEvent(new EventDescription('event2', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
EventService::RegisterListener('event1', [$oReceiver, 'OnEvent1'], '', [], null, 0);
EventService::RegisterListener('event1', [$oReceiver, 'OnEvent2'], '', [], null, 1);
$this->EventService_RegisterListener('event1', [$oReceiver, 'OnEvent1'], '', [], null, 0);
$this->EventService_RegisterListener('event1', [$oReceiver, 'OnEvent2'], '', [], null, 1);
EventService::RegisterListener('event2', [$oReceiver, 'OnEvent1'], '', [], null, 1);
EventService::RegisterListener('event2', [$oReceiver, 'OnEvent2'], '', [], null, 0);
$this->EventService_RegisterListener('event2', [$oReceiver, 'OnEvent1'], '', [], null, 1);
$this->EventService_RegisterListener('event2', [$oReceiver, 'OnEvent2'], '', [], null, 0);
self::$iEventCalls = 0;
EventService::FireEvent(new EventData('event1'));
@@ -218,14 +219,15 @@ class EventTest extends ItopTestCase
{
EventService::RegisterEvent(new EventDescription('event1', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
EventService::RegisterListener('event1', [$oReceiver, 'OnEvent1'], '', [], null, 0);
EventService::RegisterListener('event1', [$oReceiver, 'OnEvent2'], '', [], 'test_context', 1);
$this->EventService_RegisterListener('event1', [$oReceiver, 'OnEvent1'], '', [], null, 0);
$this->EventService_RegisterListener('event1', [$oReceiver, 'OnEvent2'], '', [], 'test_context', 1);
self::$iEventCalls = 0;
EventService::FireEvent(new EventData('event1'));
$this->assertEquals(1, self::$iEventCalls);
ContextTag::AddContext('test_context');
/** @noinspection PhpUnusedLocalVariableInspection */
$oUnused = new ContextTag('test_context');
self::$iEventCalls = 0;
EventService::FireEvent(new EventData('event1'));
$this->assertEquals(2, self::$iEventCalls);
@@ -236,13 +238,13 @@ class EventTest extends ItopTestCase
EventService::RegisterEvent(new EventDescription('event1', [], 'test', '', [], ''));
EventService::RegisterEvent(new EventDescription('event2', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
EventService::RegisterListener('event1', [$oReceiver, 'OnEvent1'], 'A', [], null, 0);
EventService::RegisterListener('event1', [$oReceiver, 'OnEvent2'], 'A', [], null, 1);
EventService::RegisterListener('event1', 'Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver::OnStaticEvent1', null, [], null, 2);
$this->EventService_RegisterListener('event1', [$oReceiver, 'OnEvent1'], 'A', [], null, 0);
$this->EventService_RegisterListener('event1', [$oReceiver, 'OnEvent2'], 'A', [], null, 1);
$this->EventService_RegisterListener('event1', 'Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver::OnStaticEvent1', null, [], null, 2);
EventService::RegisterListener('event2', [$oReceiver, 'OnEvent1'], 'A', [], null, 1);
EventService::RegisterListener('event2', 'Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver::OnStaticEvent1', null, [], null, 2);
EventService::RegisterListener('event2', [$oReceiver, 'OnEvent2'], 'B', [], null, 0);
$this->EventService_RegisterListener('event2', [$oReceiver, 'OnEvent1'], 'A', [], null, 1);
$this->EventService_RegisterListener('event2', 'Combodo\iTop\Test\UnitTest\Service\Events\TestEventReceiver::OnStaticEvent1', null, [], null, 2);
$this->EventService_RegisterListener('event2', [$oReceiver, 'OnEvent2'], 'B', [], null, 0);
self::$iEventCalls = 0;
EventService::FireEvent(new EventData('event1', 'A'));
@@ -272,13 +274,13 @@ class EventTest extends ItopTestCase
EventService::RegisterEvent(new EventDescription('event1', [], 'test', '', [], ''));
EventService::RegisterEvent(new EventDescription('event2', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event2', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event2', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
self::$iEventCalls = 0;
@@ -305,13 +307,13 @@ class EventTest extends ItopTestCase
EventService::RegisterEvent(new EventDescription('event1', [], 'test', '', [], ''));
EventService::RegisterEvent(new EventDescription('event2', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event2', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event2', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
self::$iEventCalls = 0;
@@ -333,13 +335,13 @@ class EventTest extends ItopTestCase
EventService::RegisterEvent(new EventDescription('event1', [], 'test', '', [], ''));
EventService::RegisterEvent(new EventDescription('event2', [], 'test', '', [], ''));
$oReceiver = new TestEventReceiver();
$sIdToRemove = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sIdToRemove = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sIdToRemove");
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event1', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
$sId = EventService::RegisterListener('event2', array($oReceiver, 'OnEvent1'));
$sId = $this->EventService_RegisterListener('event2', array($oReceiver, 'OnEvent1'));
$this->debug("Registered $sId");
self::$iEventCalls = 0;

View File

@@ -8,7 +8,7 @@ namespace Combodo\iTop\Test\UnitTest\Service\Router;
use Combodo\iTop\Service\Router\Exception\RouteNotFoundException;
use Combodo\iTop\Service\Router\Router;
use Combodo\iTop\Test\UnitTest\ItopTestCase;
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
use utils;
/**
@@ -18,7 +18,7 @@ use utils;
* @since 3.1.0
* @covers \Combodo\iTop\Service\Router\Router
*/
class RouterTest extends ItopTestCase
class RouterTest extends ItopDataTestCase
{
/**
* @inheritDoc