diff options
author | Vincent Petry <pvince81@owncloud.com> | 2016-06-15 12:20:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-15 12:20:29 +0200 |
commit | 05967a6904d2f68ce9d3e448572322839d547852 (patch) | |
tree | b965f73ef2d8d72c28775457d027f63eae015b60 /tests | |
parent | f163eedfa281099c8ef63ea8e4da138a47228283 (diff) | |
parent | 123bf78ca8e25cbc91d937f5090423594bf7ae35 (diff) | |
download | nextcloud-server-05967a6904d2f68ce9d3e448572322839d547852.tar.gz nextcloud-server-05967a6904d2f68ce9d3e448572322839d547852.zip |
Merge pull request #25093 from owncloud/issue-12816-clean-tags-from-deleted-users
Clean up tags of deleted users
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/Repair/CleanTagsTest.php | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/tests/lib/Repair/CleanTagsTest.php b/tests/lib/Repair/CleanTagsTest.php index 804fa4f66c9..ac79907c525 100644 --- a/tests/lib/Repair/CleanTagsTest.php +++ b/tests/lib/Repair/CleanTagsTest.php @@ -25,6 +25,9 @@ class CleanTagsTest extends \Test\TestCase { /** @var \OCP\IDBConnection */ protected $connection; + /** @var \OCP\IUserManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $userManager; + /** @var int */ protected $createdFile; @@ -38,8 +41,12 @@ class CleanTagsTest extends \Test\TestCase { ->disableOriginalConstructor() ->getMock(); + $this->userManager = $this->getMockBuilder('\OCP\IUserManager') + ->disableOriginalConstructor() + ->getMock(); + $this->connection = \OC::$server->getDatabaseConnection(); - $this->repair = new \OC\Repair\CleanTags($this->connection); + $this->repair = new \OC\Repair\CleanTags($this->connection, $this->userManager); $this->cleanUpTables(); } @@ -86,6 +93,20 @@ class CleanTagsTest extends \Test\TestCase { self::invokePrivate($this->repair, 'deleteOrphanCategoryEntries', [$this->outputMock]); $this->assertEntryCount('vcategory_to_object', 2, 'Assert tag entries count after cleaning category entries'); $this->assertEntryCount('vcategory', 2, 'Assert tag categories count after cleaning category entries'); + + + $this->addTagCategory('TestRepairCleanTags', 'contacts', 'userExists'); // Retained + $this->assertEntryCount('vcategory', 3, 'Assert tag categories count before cleaning categories by users'); + + $this->userManager->expects($this->exactly(2)) + ->method('userExists') + ->willReturnMap([ + ['userExists', true], + ['TestRepairCleanTags', false], + ]); + + self::invokePrivate($this->repair, 'deleteOrphanTags', [$this->outputMock]); + $this->assertEntryCount('vcategory', 1, 'Assert tag categories count after cleaning categories by users'); } /** @@ -107,13 +128,14 @@ class CleanTagsTest extends \Test\TestCase { * * @param string $category * @param string $type + * @param string $user * @return int */ - protected function addTagCategory($category, $type) { + protected function addTagCategory($category, $type, $user = 'TestRepairCleanTags') { $qb = $this->connection->getQueryBuilder(); $qb->insert('vcategory') ->values([ - 'uid' => $qb->createNamedParameter('TestRepairCleanTags'), + 'uid' => $qb->createNamedParameter($user), 'category' => $qb->createNamedParameter($category), 'type' => $qb->createNamedParameter($type), ]) |