TrackChange doesn't handle all return types of \DateTime::createFromFormat(...) (#1584)
* Added boolean check before setting the date
This commit is contained in:
parent
9958a4825f
commit
81a1b2acff
|
|
@ -58,13 +58,13 @@ class TrackChange extends AbstractContainer
|
|||
*
|
||||
* @param string $changeType
|
||||
* @param string $author
|
||||
* @param null|int|\DateTime $date
|
||||
* @param null|int|bool|\DateTime $date
|
||||
*/
|
||||
public function __construct($changeType = null, $author = null, $date = null)
|
||||
{
|
||||
$this->changeType = $changeType;
|
||||
$this->author = $author;
|
||||
if ($date !== null) {
|
||||
if ($date !== null && $date !== false) {
|
||||
$this->date = ($date instanceof \DateTime) ? $date : new \DateTime('@' . $date);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,4 +41,22 @@ class TrackChangeTest extends \PHPUnit\Framework\TestCase
|
|||
$this->assertEquals($date, $oTrackChange->getDate());
|
||||
$this->assertEquals(TrackChange::INSERTED, $oTrackChange->getChangeType());
|
||||
}
|
||||
|
||||
/**
|
||||
* New instance with invalid \DateTime (produced by \DateTime::createFromFormat(...))
|
||||
*/
|
||||
public function testConstructDefaultWithInvalidDate()
|
||||
{
|
||||
$author = 'Test User';
|
||||
$date = false;
|
||||
$oTrackChange = new TrackChange(TrackChange::INSERTED, $author, $date);
|
||||
|
||||
$oText = new Text('dummy text');
|
||||
$oText->setTrackChange($oTrackChange);
|
||||
|
||||
$this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\TrackChange', $oTrackChange);
|
||||
$this->assertEquals($author, $oTrackChange->getAuthor());
|
||||
$this->assertEquals($date, null);
|
||||
$this->assertEquals(TrackChange::INSERTED, $oTrackChange->getChangeType());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue