Add test if repair step is already done
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
ccb05dbb17
commit
78a318d388
3 changed files with 59 additions and 6 deletions
|
@ -158,7 +158,8 @@ class Repair implements IOutput{
|
|||
),
|
||||
new CleanPreviews(
|
||||
\OC::$server->getJobList(),
|
||||
\OC::$server->getUserManager()
|
||||
\OC::$server->getUserManager(),
|
||||
\OC::$server->getConfig()
|
||||
),
|
||||
];
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue