Execute UpdateLanguageCode only once
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
53195b156c
commit
0b12eb0640
|
@ -23,6 +23,7 @@
|
|||
|
||||
namespace OC\Repair\NC12;
|
||||
|
||||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\Migration\IOutput;
|
||||
use OCP\Migration\IRepairStep;
|
||||
|
@ -31,11 +32,16 @@ class UpdateLanguageCodes implements IRepairStep {
|
|||
/** @var IDBConnection */
|
||||
private $connection;
|
||||
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
/**
|
||||
* @param IDBConnection $db
|
||||
*/
|
||||
public function __construct(IDBConnection $connection) {
|
||||
public function __construct(IDBConnection $connection,
|
||||
IConfig $config) {
|
||||
$this->connection = $connection;
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -49,6 +55,13 @@ class UpdateLanguageCodes implements IRepairStep {
|
|||
* {@inheritdoc}
|
||||
*/
|
||||
public function run(IOutput $output) {
|
||||
|
||||
$versionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0');
|
||||
|
||||
if (version_compare($versionFromBeforeUpdate, '12.0.0.13', '>')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$languages = [
|
||||
'bg_BG' => 'bg',
|
||||
'cs_CZ' => 'cs',
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
namespace Test\Repair\NC12;
|
||||
|
||||
use OC\Repair\NC12\UpdateLanguageCodes;
|
||||
use OCP\IConfig;
|
||||
use OCP\Migration\IOutput;
|
||||
use Test\TestCase;
|
||||
|
||||
|
@ -38,10 +39,14 @@ class UpdateLanguageCodesTest extends TestCase {
|
|||
/** @var \OCP\IDBConnection */
|
||||
protected $connection;
|
||||
|
||||
/** @var IConfig | \PHPUnit_Framework_MockObject_MockObject */
|
||||
private $config;
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
$this->connection = \OC::$server->getDatabaseConnection();
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
}
|
||||
|
||||
public function testRun() {
|
||||
|
@ -112,8 +117,13 @@ class UpdateLanguageCodesTest extends TestCase {
|
|||
->method('info')
|
||||
->with('Changed 2 setting(s) from "th_TH" to "th" in preferences table.');
|
||||
|
||||
$this->config->expects($this->once())
|
||||
->method('getSystemValue')
|
||||
->with('version', '0.0.0')
|
||||
->willReturn('12.0.0.13');
|
||||
|
||||
// run repair step
|
||||
$repair = new UpdateLanguageCodes($this->connection);
|
||||
$repair = new UpdateLanguageCodes($this->connection, $this->config);
|
||||
$repair->run($outputMock);
|
||||
|
||||
// check if test data is correctly modified in DB
|
||||
|
@ -147,4 +157,18 @@ class UpdateLanguageCodesTest extends TestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public function testSecondRun() {
|
||||
/** @var IOutput|\PHPUnit_Framework_MockObject_MockObject $outputMock */
|
||||
$outputMock = $this->createMock(IOutput::class);
|
||||
|
||||
$this->config->expects($this->once())
|
||||
->method('getSystemValue')
|
||||
->with('version', '0.0.0')
|
||||
->willReturn('12.0.0.14');
|
||||
|
||||
// run repair step
|
||||
$repair = new UpdateLanguageCodes($this->connection, $this->config);
|
||||
$repair->run($outputMock);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue