summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2016-11-19 20:26:53 +0100
committerRoeland Jago Douma <roeland@famdouma.nl>2016-11-19 20:26:53 +0100
commit78a318d388bfe82e1a3adebeb75ac195cb1334d7 (patch)
tree5815fe69df96b1963c5774a4b40a052abbf58300
parentccb05dbb170475870e755573f91da6e1914698d5 (diff)
downloadnextcloud-server-78a318d388bfe82e1a3adebeb75ac195cb1334d7.tar.gz
nextcloud-server-78a318d388bfe82e1a3adebeb75ac195cb1334d7.zip
Add test if repair step is already done
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
-rw-r--r--lib/private/Repair.php3
-rw-r--r--lib/private/Repair/NC11/CleanPreviews.php18
-rw-r--r--tests/lib/Repair/NC11/CleanPreviewsTest.php44
3 files changed, 59 insertions, 6 deletions
diff --git a/lib/private/Repair.php b/lib/private/Repair.php
index c9f8dbfff69..5efbb9f8e2e 100644
--- a/lib/private/Repair.php
+++ b/lib/private/Repair.php
@@ -158,7 +158,8 @@ class Repair implements IOutput{
),
new CleanPreviews(
\OC::$server->getJobList(),
- \OC::$server->getUserManager()
+ \OC::$server->getUserManager(),
+ \OC::$server->getConfig()
),
];
}
diff --git a/lib/private/Repair/NC11/CleanPreviews.php b/lib/private/Repair/NC11/CleanPreviews.php
index 0c6be0165fc..94f5d19b795 100644
--- a/lib/private/Repair/NC11/CleanPreviews.php
+++ b/lib/private/Repair/NC11/CleanPreviews.php
@@ -23,6 +23,7 @@
namespace OC\Repair\NC11;
use OCP\BackgroundJob\IJobList;
+use OCP\IConfig;
use OCP\IUser;
use OCP\IUserManager;
use OCP\Migration\IOutput;
@@ -36,16 +37,22 @@ class CleanPreviews implements IRepairStep {
/** @var IUserManager */
private $userManager;
+ /** @var IConfig */
+ private $config;
+
/**
* MoveAvatars constructor.
*
* @param IJobList $jobList
* @param IUserManager $userManager
+ * @param IConfig $config
*/
public function __construct(IJobList $jobList,
- IUserManager $userManager) {
+ IUserManager $userManager,
+ IConfig $config) {
$this->jobList = $jobList;
$this->userManager = $userManager;
+ $this->config = $config;
}
/**
@@ -56,8 +63,11 @@ class CleanPreviews implements IRepairStep {
}
public function run(IOutput $output) {
- $this->userManager->callForSeenUsers(function(IUser $user) {
- $this->jobList->add(CleanPreviewsBackgroundJob::class, ['uid' => $user->getUID()]);
- });
+ if (!$this->config->getAppValue('core', 'previewsCleanedUp', false)) {
+ $this->userManager->callForSeenUsers(function (IUser $user) {
+ $this->jobList->add(CleanPreviewsBackgroundJob::class, ['uid' => $user->getUID()]);
+ });
+ $this->config->setAppValue('core', 'previewsCleanedUp', 1);
+ }
}
}
diff --git a/tests/lib/Repair/NC11/CleanPreviewsTest.php b/tests/lib/Repair/NC11/CleanPreviewsTest.php
index 643f18e89b7..8abc6b7bab9 100644
--- a/tests/lib/Repair/NC11/CleanPreviewsTest.php
+++ b/tests/lib/Repair/NC11/CleanPreviewsTest.php
@@ -25,6 +25,7 @@ namespace Test\Repair\NC11;
use OC\Repair\NC11\CleanPreviews;
use OC\Repair\NC11\CleanPreviewsBackgroundJob;
use OCP\BackgroundJob\IJobList;
+use OCP\IConfig;
use OCP\IUser;
use OCP\IUserManager;
use OCP\Migration\IOutput;
@@ -39,6 +40,9 @@ class CleanPreviewsTest extends TestCase {
/** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */
private $userManager;
+ /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */
+ private $config;
+
/** @var CleanPreviews */
private $repair;
@@ -47,10 +51,12 @@ class CleanPreviewsTest extends TestCase {
$this->jobList = $this->createMock(IJobList::class);
$this->userManager = $this->createMock(IUserManager::class);
+ $this->config = $this->createMock(IConfig::class);
$this->repair = new CleanPreviews(
$this->jobList,
- $this->userManager
+ $this->userManager,
+ $this->config
);
}
@@ -87,6 +93,42 @@ class CleanPreviewsTest extends TestCase {
$this->equalTo(['uid' => 'user2'])
);
+ $this->config->expects($this->once())
+ ->method('getAppValue')
+ ->with(
+ $this->equalTo('core'),
+ $this->equalTo('previewsCleanedUp'),
+ $this->equalTo(false)
+ )->willReturn(false);
+ $this->config->expects($this->once())
+ ->method('setAppValue')
+ ->with(
+ $this->equalTo('core'),
+ $this->equalTo('previewsCleanedUp'),
+ $this->equalTo(1)
+ );
+
+ $this->repair->run($this->createMock(IOutput::class));
+ }
+
+
+ public function testRunAlreadyDoone() {
+ $this->userManager->expects($this->never())
+ ->method($this->anything());
+
+ $this->jobList->expects($this->never())
+ ->method($this->anything());
+
+ $this->config->expects($this->once())
+ ->method('getAppValue')
+ ->with(
+ $this->equalTo('core'),
+ $this->equalTo('previewsCleanedUp'),
+ $this->equalTo(false)
+ )->willReturn('1');
+ $this->config->expects($this->never())
+ ->method('setAppValue');
+
$this->repair->run($this->createMock(IOutput::class));
}