summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/Repair.php2
-rw-r--r--lib/private/Repair/NC12/UpdateLanguageCodes.php18
-rw-r--r--tests/lib/Repair/NC12/UpdateLanguageCodesTest.php28
3 files changed, 44 insertions, 4 deletions
diff --git a/lib/private/Repair.php b/lib/private/Repair.php
index 7f142a808aa..e808774ec93 100644
--- a/lib/private/Repair.php
+++ b/lib/private/Repair.php
@@ -135,7 +135,7 @@ class Repair implements IOutput{
\OC::$server->getConfig()
),
new FixMountStorages(\OC::$server->getDatabaseConnection()),
- new UpdateLanguageCodes(\OC::$server->getDatabaseConnection()),
+ new UpdateLanguageCodes(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig()),
];
}
diff --git a/lib/private/Repair/NC12/UpdateLanguageCodes.php b/lib/private/Repair/NC12/UpdateLanguageCodes.php
index ed65a5cbbe3..891473f51a7 100644
--- a/lib/private/Repair/NC12/UpdateLanguageCodes.php
+++ b/lib/private/Repair/NC12/UpdateLanguageCodes.php
@@ -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,17 @@ class UpdateLanguageCodes implements IRepairStep {
/** @var IDBConnection */
private $connection;
+ /** @var IConfig */
+ private $config;
+
/**
- * @param IDBConnection $db
+ * @param IDBConnection $connection
+ * @param IConfig $config
*/
- public function __construct(IDBConnection $connection) {
+ public function __construct(IDBConnection $connection,
+ IConfig $config) {
$this->connection = $connection;
+ $this->config = $config;
}
/**
@@ -49,6 +56,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',
diff --git a/tests/lib/Repair/NC12/UpdateLanguageCodesTest.php b/tests/lib/Repair/NC12/UpdateLanguageCodesTest.php
index 95ccd0935a1..4379d1ba589 100644
--- a/tests/lib/Repair/NC12/UpdateLanguageCodesTest.php
+++ b/tests/lib/Repair/NC12/UpdateLanguageCodesTest.php
@@ -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,20 @@ class UpdateLanguageCodesTest extends TestCase {
}
}
+ public function testSecondRun() {
+ /** @var IOutput|\PHPUnit_Framework_MockObject_MockObject $outputMock */
+ $outputMock = $this->createMock(IOutput::class);
+ $outputMock->expects($this->never())
+ ->method('info');
+
+ $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);
+ }
+
}