diff --git a/lib/private/Comments/Manager.php b/lib/private/Comments/Manager.php index 3eb9aab6817fa..a5c9301ffa244 100644 --- a/lib/private/Comments/Manager.php +++ b/lib/private/Comments/Manager.php @@ -1344,7 +1344,8 @@ protected function updateQuery(IComment $comment, bool $tryWritingReferenceId): ->set('creation_timestamp', $qb->createNamedParameter($comment->getCreationDateTime(), 'datetime')) ->set('latest_child_timestamp', $qb->createNamedParameter($comment->getLatestChildDateTime(), 'datetime')) ->set('object_type', $qb->createNamedParameter($comment->getObjectType())) - ->set('object_id', $qb->createNamedParameter($comment->getObjectId())); + ->set('object_id', $qb->createNamedParameter($comment->getObjectId())) + ->set('expire_date', $qb->createNamedParameter($comment->getExpireDate(), 'datetime')); if ($tryWritingReferenceId) { $qb->set('reference_id', $qb->createNamedParameter($comment->getReferenceId())); diff --git a/tests/lib/Comments/ManagerTest.php b/tests/lib/Comments/ManagerTest.php index 1af460e6f1bf9..1d08f0f508598 100644 --- a/tests/lib/Comments/ManagerTest.php +++ b/tests/lib/Comments/ManagerTest.php @@ -516,15 +516,41 @@ public function testSaveUpdate() { ->setActor('users', 'alice') ->setObject('files', 'file64') ->setMessage('very beautiful, I am impressed!') - ->setVerb('comment'); + ->setVerb('comment') + ->setExpireDate(new \DateTime('+2 hours')); $manager->save($comment); - $comment->setMessage('very beautiful, I am really so much impressed!'); + $loadedComment = $manager->get($comment->getId()); + // Compare current object with database values + $this->assertSame($comment->getMessage(), $loadedComment->getMessage()); + $this->assertSame( + $comment->getExpireDate()->format('Y-m-d H:i:s'), + $loadedComment->getExpireDate()->format('Y-m-d H:i:s') + ); + + // Preserve the original comment to compare after update + $original = clone $comment; + + // Update values + $comment->setMessage('very beautiful, I am really so much impressed!') + ->setExpireDate(new \DateTime('+1 hours')); $manager->save($comment); $loadedComment = $manager->get($comment->getId()); + // Compare current object with database values $this->assertSame($comment->getMessage(), $loadedComment->getMessage()); + $this->assertSame( + $comment->getExpireDate()->format('Y-m-d H:i:s'), + $loadedComment->getExpireDate()->format('Y-m-d H:i:s') + ); + + // Compare original object with database values + $this->assertNotSame($original->getMessage(), $loadedComment->getMessage()); + $this->assertNotSame( + $original->getExpireDate()->format('Y-m-d H:i:s'), + $loadedComment->getExpireDate()->format('Y-m-d H:i:s') + ); }