Delete comments that expired now

Signed-off-by: Vitor Mattos <vitor@php.rio>
pull/33342/head
Vitor Mattos 3 years ago
parent 6206b312b2
commit 7a0648757a
No known key found for this signature in database
GPG Key ID: B7AB4B76A7CA7318
  1. 2
      lib/private/Comments/Manager.php
  2. 5
      tests/lib/Comments/ManagerTest.php

@ -1652,7 +1652,7 @@ class Manager implements ICommentsManager {
public function deleteCommentsExpiredAtObject(string $objectType, string $objectId = ''): bool {
$qb = $this->dbConn->getQueryBuilder();
$qb->delete('comments')
->where($qb->expr()->lt('expire_date',
->where($qb->expr()->lte('expire_date',
$qb->createNamedParameter($this->timeFactory->getDateTime(), IQueryBuilder::PARAM_DATE)))
->andWhere($qb->expr()->eq('object_type', $qb->createNamedParameter($objectType)));

@ -753,6 +753,9 @@ class ManagerTest extends TestCase {
$ids[] = $this->addDatabaseEntry(0, 0, null, null, 'file1', new \DateTime('-2 hours'));
$ids[] = $this->addDatabaseEntry(0, 0, null, null, 'file2', new \DateTime('-2 hours'));
$ids[] = $this->addDatabaseEntry(0, 0, null, null, 'file3', new \DateTime('-2 hours'));
$ids[] = $this->addDatabaseEntry(0, 0, null, null, 'file3', new \DateTime());
$ids[] = $this->addDatabaseEntry(0, 0, null, null, 'file3', new \DateTime());
$ids[] = $this->addDatabaseEntry(0, 0, null, null, 'file3', new \DateTime());
$manager = new Manager(
$this->connection,
@ -777,7 +780,7 @@ class ManagerTest extends TestCase {
}
}
$this->assertSame($exists, 0);
$this->assertSame($deleted, 3);
$this->assertSame($deleted, 6);
// actor info is gone from DB, but when database interaction is alright,
// we still expect to get true back

Loading…
Cancel
Save