diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-08-30 16:21:55 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-08-30 18:04:18 +0200 |
commit | 2b08659f7d18d458339bcd89687469d8926f4941 (patch) | |
tree | ad1ddb3aac8d8d3bb5eff26d65ea4a2eab35dfc1 /tests | |
parent | 045f8cc97101521cafd664faf7b8f24ea9e88451 (diff) | |
download | nextcloud-server-2b08659f7d18d458339bcd89687469d8926f4941.tar.gz nextcloud-server-2b08659f7d18d458339bcd89687469d8926f4941.zip |
Restrict upgrades to explicit allowed version
version.php now contains the previous ownCloud version from which
upgrades are allowed. Any other upgrades will show a message that the
upgrade/downgrade is not supported.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/updater.php | 74 |
1 files changed, 64 insertions, 10 deletions
diff --git a/tests/lib/updater.php b/tests/lib/updater.php index 28577071b4c..763858acf5d 100644 --- a/tests/lib/updater.php +++ b/tests/lib/updater.php @@ -67,14 +67,68 @@ class UpdaterTest extends \Test\TestCase { */ public function versionCompatibilityTestData() { return [ - ['1.0.0.0', '2.2.0', true], - ['1.1.1.1', '2.0.0', true], - ['5.0.3', '4.0.3', false], - ['12.0.3', '13.4.5', true], - ['1', '2', true], - ['2', '2', true], - ['6.0.5', '6.0.6', true], - ['5.0.6', '7.0.4', false], + ['1', '2', '1', true], + ['2', '2', '2', true], + ['6.0.5.0', '6.0.6.0', '5.0', true], + ['5.0.6.0', '7.0.4.0', '6.0', false], + // allow upgrading within the same major release + ['8.0.0.0', '8.0.0.0', '8.0', true], + ['8.0.0.0', '8.0.0.4', '8.0', true], + ['8.0.0.0', '8.0.1.0', '8.0', true], + ['8.0.0.0', '8.0.2.0', '8.0', true], + // does not allow downgrading within the same major release + ['8.0.1.0', '8.0.0.0', '8.0', false], + ['8.0.2.0', '8.0.1.0', '8.0', false], + ['8.0.0.4', '8.0.0.0', '8.0', false], + // allows upgrading within the patch version + ['8.0.0.0', '8.0.0.1', '8.0', true], + ['8.0.0.0', '8.0.0.2', '8.0', true], + // does not allow downgrading within the same major release + ['8.0.0.1', '8.0.0.0', '8.0', false], + ['8.0.0.2', '8.0.0.0', '8.0', false], + // allow upgrading to the next major release + ['8.0.0.0', '8.1.0.0', '8.0', true], + ['8.0.0.0', '8.1.1.0', '8.0', true], + ['8.0.0.0', '8.1.1.5', '8.0', true], + ['8.0.0.2', '8.1.1.5', '8.0', true], + ['8.1.0.0', '8.2.0.0', '8.1', true], + ['8.1.0.2', '8.2.0.4', '8.1', true], + ['8.1.0.5', '8.2.0.1', '8.1', true], + ['8.1.0.0', '8.2.1.0', '8.1', true], + ['8.1.0.2', '8.2.1.5', '8.1', true], + ['8.1.0.5', '8.2.1.1', '8.1', true], + // does not allow downgrading to the previous major release + ['8.1.0.0', '8.0.0.0', '7.0', false], + ['8.1.1.0', '8.0.0.0', '7.0', false], + // does not allow skipping major releases + ['8.0.0.0', '8.2.0.0', '8.1', false], + ['8.0.0.0', '8.2.1.0', '8.1', false], + ['8.0.0.0', '9.0.1.0', '8.2', false], + ['8.0.0.0', '10.0.0.0', '9.3', false], + // allows updating to the next major release + ['8.2.0.0', '9.0.0.0', '8.2', true], + ['8.2.0.0', '9.0.0.0', '8.2', true], + ['8.2.0.0', '9.0.1.0', '8.2', true], + ['8.2.0.0', '9.0.1.1', '8.2', true], + ['8.2.0.2', '9.0.1.1', '8.2', true], + ['8.2.2.0', '9.0.1.0', '8.2', true], + ['8.2.2.2', '9.0.1.1', '8.2', true], + ['9.0.0.0', '9.1.0.0', '9.0', true], + ['9.0.0.0', '9.1.0.2', '9.0', true], + ['9.0.0.2', '9.1.0.1', '9.0', true], + ['9.1.0.0', '9.2.0.0', '9.1', true], + ['9.2.0.0', '9.3.0.0', '9.2', true], + ['9.3.0.0', '10.0.0.0', '9.3', true], + // does not allow updating to the next major release (first number) + ['9.0.0.0', '8.2.0.0', '8.1', false], + // other cases + ['8.0.0.0', '8.1.5.0', '8.0', true], + ['8.2.0.0', '9.0.0.0', '8.2', true], + ['8.2.0.0', '9.1.0.0', '9.0', false], + ['9.0.0.0', '8.1.0.0', '8.0', false], + ['9.0.0.0', '8.0.0.0', '7.0', false], + ['9.1.0.0', '8.0.0.0', '7.0', false], + ['8.2.0.0', '8.1.0.0', '8.0', false], ]; } @@ -106,9 +160,9 @@ class UpdaterTest extends \Test\TestCase { * @param string $newVersion * @param bool $result */ - public function testIsUpgradePossible($oldVersion, $newVersion, $result) { + public function testIsUpgradePossible($oldVersion, $newVersion, $allowedVersion, $result) { $updater = new Updater($this->httpHelper, $this->config); - $this->assertSame($result, $updater->isUpgradePossible($oldVersion, $newVersion)); + $this->assertSame($result, $updater->isUpgradePossible($oldVersion, $newVersion, $allowedVersion)); } public function testCheckInCache() { |