Add test if repair step is already done

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2016-11-19 20:26:53 +01:00
parent ccb05dbb17
commit 78a318d388
No known key found for this signature in database
GPG Key ID: F941078878347C0C
3 changed files with 59 additions and 6 deletions

View File

@ -158,7 +158,8 @@ class Repair implements IOutput{
),
new CleanPreviews(
\OC::$server->getJobList(),
\OC::$server->getUserManager()
\OC::$server->getUserManager(),
\OC::$server->getConfig()
),
];
}

View File

@ -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);
}
}
}

View File

@ -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));
}