N°8129 - Dont crash if date/time default value has a bad format

This commit is contained in:
XGUI
2025-01-30 14:14:31 +01:00
parent d12c8a183c
commit 803ebfbe33
4 changed files with 129 additions and 53 deletions

View File

@@ -550,6 +550,27 @@ abstract class ItopTestCase extends TestCase
$this->AssertArraysHaveSameItems($aExpected, $aFiles, $sMessage);
}
/**
* @since 3.2.1
*/
static protected function AssertDateEqualsNow($sActualDate, $sMessage = ''): void
{
$oActualDate = \DateTime::createFromFormat(\AttributeDate::GetInternalFormat(), $sActualDate);
$oNow = new DateTime();
$iTimeInterval = $oNow->diff($oActualDate)->s;
self::assertLessThan(2, $iTimeInterval, $sMessage);
}
/**
* @since 3.2.1
*/
static protected function AssertDateTimeEqualsNow($sActualDate, $sMessage = ''): void
{
$oActualDateTime = \DateTime::createFromFormat(\AttributeDateTime::GetInternalFormat(), $sActualDate);
$oNow = new DateTime();
$iTimeInterval = $oNow->diff($oActualDateTime)->s;
self::assertLessThan(2, $iTimeInterval, $sMessage);
}
/**
* Control which Kernel will be loaded when invoking the bootKernel method
*
@@ -572,4 +593,37 @@ abstract class ItopTestCase extends TestCase
}
return parent::bootKernel($options);
}
/**
* @author Ain Tohvri <https://mstdn.social/@tekkie>
*
* @since 3.2.1
*/
static protected function ReadTail($sFilename, $iLines = 1)
{
$handle = fopen($sFilename, "r");
$iLineCounter = $iLines;
$iPos = -2;
$bBeginning = false;
$aLines = array();
while ($iLineCounter > 0) {
$sChar = " ";
while ($sChar != "\n") {
if(fseek($handle, $iPos, SEEK_END) == -1) {
$bBeginning = true;
break;
}
$sChar = fgetc($handle);
$iPos --;
}
$iLineCounter --;
if ($bBeginning) {
rewind($handle);
}
$aLines[$iLines - $iLineCounter - 1] = fgets($handle);
if ($bBeginning) break;
}
fclose ($handle);
return array_reverse($aLines);
}
}