summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2016-06-15 12:20:29 +0200
committerGitHub <noreply@github.com>2016-06-15 12:20:29 +0200
commit05967a6904d2f68ce9d3e448572322839d547852 (patch)
treeb965f73ef2d8d72c28775457d027f63eae015b60 /tests
parentf163eedfa281099c8ef63ea8e4da138a47228283 (diff)
parent123bf78ca8e25cbc91d937f5090423594bf7ae35 (diff)
downloadnextcloud-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.php28
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),
])