From 7e612d8a93ac91f7dc86984d7998902f0541a1a6 Mon Sep 17 00:00:00 2001 From: catch <catch@35733.no-reply.drupal.org> Date: Wed, 2 Feb 2022 14:24:32 +0000 Subject: [PATCH] Issue #3261250 by andypost, longwave: Remove deprecated update.module functions --- core/modules/update/src/ModuleVersion.php | 143 ------- .../tests/src/Unit/ModuleVersionTest.php | 401 ------------------ 2 files changed, 544 deletions(-) delete mode 100644 core/modules/update/src/ModuleVersion.php delete mode 100644 core/modules/update/tests/src/Unit/ModuleVersionTest.php diff --git a/core/modules/update/src/ModuleVersion.php b/core/modules/update/src/ModuleVersion.php deleted file mode 100644 index 4f363e28b1da..000000000000 --- a/core/modules/update/src/ModuleVersion.php +++ /dev/null @@ -1,143 +0,0 @@ -<?php - -namespace Drupal\update; - -/** - * Provides a module version value object. - * - * @deprecated in drupal:9.2.0 and is removed from drupal:10.0.0. Use - * \Drupal\Core\Extension\ExtensionVersion instead. As an internal class - * ExtensionVersion may also be removed in a minor release. - * - * @internal - * - * @see https://www.drupal.org/node/3095201 - */ -final class ModuleVersion { - - /** - * The '8.x-' prefix is used on contrib module version numbers. - * - * @var string - */ - const CORE_PREFIX = '8.x-'; - - /** - * The major version. - * - * @var string - */ - protected $majorVersion; - - /** - * The version extra string. - * - * For example, if the module version is '2.0.3-alpha1', then the version - * extra string is 'alpha1'. - * - * @var string|null - */ - protected $versionExtra; - - /** - * Constructs a module version object from a version string. - * - * @param string $version_string - * The version string. - * - * @return \Drupal\update\ModuleVersion - * The module version instance. - * - * @throws \UnexpectedValueException - * Thrown when a legacy version string has a core prefix other than "8.x-" - * for example, version strings such as "7.x-1.0" are not supported. - */ - public static function createFromVersionString($version_string) { - $original_version = $version_string; - if (strpos($version_string, static::CORE_PREFIX) === 0 && $version_string !== '8.x-dev') { - $version_string = preg_replace('/8\.x-/', '', $version_string, 1); - } - else { - // Ensure the version string has no unsupported core prefixes. - $dot_x_position = strpos($version_string, '.x-'); - if ($dot_x_position === 1 || $dot_x_position === 2) { - $after_core_prefix = explode('.x-', $version_string)[1]; - if ($after_core_prefix !== 'dev') { - throw new \UnexpectedValueException("Unexpected version core prefix in $version_string. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-"); - } - } - } - $version_parts = explode('.', $version_string); - $major_version = $version_parts[0]; - $version_parts_count = count($version_parts); - $last_part_split = explode('-', $version_parts[count($version_parts) - 1]); - $version_extra = count($last_part_split) === 1 ? NULL : $last_part_split[1]; - if ($version_parts_count > 3 || $version_parts_count < 2 - || !is_numeric($major_version) - || ($version_parts_count === 3 && !is_numeric($version_parts[1])) - // The only case where a non-numeric version part other the extra part is - // allowed is in development versions like 8.x-1.x-dev, 1.2.x-dev or - // 1.x-dev. - || (!is_numeric($last_part_split[0]) && $last_part_split !== 'x' && $version_extra !== 'dev')) { - throw new \UnexpectedValueException("Unexpected version number in: $original_version"); - } - return new static($major_version, $version_extra); - } - - /** - * Constructs a ModuleVersion object. - * - * @param string $major_version - * The major version. - * @param string|null $version_extra - * The extra version string. - */ - private function __construct($major_version, $version_extra) { - @trigger_error(__CLASS__ . ' is deprecated in drupal:9.2.0 and will be removed before drupal:10.0.0. Use The \Drupal\Core\Extension\ExtensionVersion instead. As an internal class, ExtensionVersion may also be removed in a minor release.', E_USER_DEPRECATED); - $this->majorVersion = $major_version; - $this->versionExtra = $version_extra; - } - - /** - * Constructs a module version object from a support branch. - * - * This can be used to determine the major version of the branch. - * ::getVersionExtra() will always return NULL for branches. - * - * @param string $branch - * The support branch. - * - * @return \Drupal\update\ModuleVersion - * The module version instance. - * - * @throws \UnexpectedValueException - * Thrown when $branch is not valid because it does not end in ".". - */ - public static function createFromSupportBranch($branch) { - if (substr($branch, -1) !== '.') { - throw new \UnexpectedValueException("Invalid support branch: $branch"); - } - return static::createFromVersionString($branch . '0'); - } - - /** - * Gets the major version. - * - * @return string - * The major version. - */ - public function getMajorVersion() { - return $this->majorVersion; - } - - /** - * Gets the version extra string at the end of the version number. - * - * @return string|null - * The version extra string if available, or otherwise NULL. - */ - public function getVersionExtra() { - return $this->versionExtra; - } - -} diff --git a/core/modules/update/tests/src/Unit/ModuleVersionTest.php b/core/modules/update/tests/src/Unit/ModuleVersionTest.php deleted file mode 100644 index 75812ad5546e..000000000000 --- a/core/modules/update/tests/src/Unit/ModuleVersionTest.php +++ /dev/null @@ -1,401 +0,0 @@ -<?php - -namespace Drupal\Tests\update\Unit; - -use Drupal\Tests\UnitTestCase; -use Drupal\update\ModuleVersion; - -/** - * @coversDefaultClass \Drupal\update\ModuleVersion - * - * @group legacy - * @group update - */ -class ModuleVersionTest extends UnitTestCase { - - /** - * @covers ::getMajorVersion - * - * @dataProvider providerVersionInfos - * - * @param string $version - * The version string to test. - * @param array $expected_version_info - * The expected version information. - */ - public function testGetMajorVersion($version, array $expected_version_info) { - $version = ModuleVersion::createFromVersionString($version); - $this->assertSame($expected_version_info['major'], $version->getMajorVersion()); - } - - /** - * @covers ::getVersionExtra - * - * @dataProvider providerVersionInfos - * - * @param string $version - * The version string to test. - * @param array $expected_version_info - * The expected version information. - */ - public function testGetVersionExtra($version, array $expected_version_info) { - $version = ModuleVersion::createFromVersionString($version); - $this->assertSame($expected_version_info['extra'], $version->getVersionExtra()); - } - - /** - * Data provider for expected version information. - * - * @return array - * Arrays of version information. - */ - public function providerVersionInfos() { - // Data provider values are: - // - The version number to test. - // - Array of expected version information with the following keys: - // -'major': The expected result from ::getMajorVersion(). - // -'extra': The expected result from ::getVersionExtra(). - return [ - '8.x-1.3' => [ - '8.x-1.3', - [ - 'major' => '1', - 'extra' => NULL, - ], - ], - '8.x-1.0' => [ - '8.x-1.0', - [ - 'major' => '1', - 'extra' => NULL, - ], - ], - '8.x-1.0-alpha1' => [ - '8.x-1.0-alpha1', - [ - 'major' => '1', - 'extra' => 'alpha1', - ], - ], - '8.x-1.3-alpha1' => [ - '8.x-1.3-alpha1', - [ - 'major' => '1', - 'extra' => 'alpha1', - ], - ], - '0.1' => [ - '0.1', - [ - 'major' => '0', - 'extra' => NULL, - ], - ], - '1.0' => [ - '1.0', - [ - 'major' => '1', - 'extra' => NULL, - ], - ], - '1.3' => [ - '1.3', - [ - 'major' => '1', - 'extra' => NULL, - ], - ], - '1.0-alpha1' => [ - '1.0-alpha1', - [ - 'major' => '1', - 'extra' => 'alpha1', - ], - ], - '1.3-alpha1' => [ - '1.3-alpha1', - [ - 'major' => '1', - 'extra' => 'alpha1', - ], - ], - '0.2.0' => [ - '0.2.0', - [ - 'major' => '0', - 'extra' => NULL, - ], - ], - '1.2.0' => [ - '1.2.0', - [ - 'major' => '1', - 'extra' => NULL, - ], - ], - '1.0.3' => [ - '1.0.3', - [ - 'major' => '1', - 'extra' => NULL, - ], - ], - '1.2.3' => [ - '1.2.3', - [ - 'major' => '1', - 'extra' => NULL, - ], - ], - '1.2.0-alpha1' => [ - '1.2.0-alpha1', - [ - 'major' => '1', - 'extra' => 'alpha1', - ], - ], - '1.2.3-alpha1' => [ - '1.2.3-alpha1', - [ - 'major' => '1', - 'extra' => 'alpha1', - ], - ], - '8.x-1.x-dev' => [ - '8.x-1.x-dev', - [ - 'major' => '1', - 'extra' => 'dev', - ], - ], - '8.x-8.x-dev' => [ - '8.x-8.x-dev', - [ - 'major' => '8', - 'extra' => 'dev', - ], - ], - '1.x-dev' => [ - '1.x-dev', - [ - 'major' => '1', - 'extra' => 'dev', - ], - ], - '8.x-dev' => [ - '8.x-dev', - [ - 'major' => '8', - 'extra' => 'dev', - ], - ], - '1.0.x-dev' => [ - '1.0.x-dev', - [ - 'major' => '1', - 'extra' => 'dev', - ], - ], - '1.2.x-dev' => [ - '1.2.x-dev', - [ - 'major' => '1', - 'extra' => 'dev', - ], - ], - ]; - } - - /** - * @covers ::createFromVersionString - * - * @dataProvider providerInvalidVersionNumber - * - * @param string $version - * The version string to test. - */ - public function testInvalidVersionNumber($version) { - $this->expectException(\UnexpectedValueException::class); - $this->expectExceptionMessage("Unexpected version number in: $version"); - ModuleVersion::createFromVersionString($version); - } - - /** - * Data provider for testInvalidVersionNumber(). - */ - public function providerInvalidVersionNumber() { - return static::createKeyedTestCases([ - '', - '8', - 'x', - 'xx', - '8.x-', - '8.x', - '.x', - '.0', - '.1', - '.1.0', - '1.0.', - 'x.1', - '1.x.0', - '1.1.x', - '1.1.x-extra', - 'x.1.1', - '1.1.1.1', - '1.1.1.0', - ]); - } - - /** - * @covers ::createFromVersionString - * - * @dataProvider providerInvalidVersionCorePrefix - * - * @param string $version - * The version string to test. - */ - public function testInvalidVersionCorePrefix($version) { - $this->expectException(\UnexpectedValueException::class); - $this->expectExceptionMessage("Unexpected version core prefix in $version. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-"); - ModuleVersion::createFromVersionString($version); - } - - /** - * Data provider for testInvalidVersionCorePrefix(). - */ - public function providerInvalidVersionCorePrefix() { - return static::createKeyedTestCases([ - '6.x-1.0', - '7.x-1.x', - '9.x-1.x', - '10.x-1.x', - ]); - } - - /** - * @covers ::createFromSupportBranch - * - * @dataProvider providerInvalidBranchCorePrefix - * - * @param string $branch - * The branch to test. - */ - public function testInvalidBranchCorePrefix($branch) { - $this->expectException(\UnexpectedValueException::class); - $this->expectExceptionMessage("Unexpected version core prefix in {$branch}0. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-"); - ModuleVersion::createFromSupportBranch($branch); - } - - /** - * Data provider for testInvalidBranchCorePrefix(). - */ - public function providerInvalidBranchCorePrefix() { - return static::createKeyedTestCases([ - '6.x-1.', - '7.x-1.', - '9.x-1.', - '10.x-1.', - ]); - } - - /** - * @covers ::createFromSupportBranch - * - * @dataProvider providerCreateFromSupportBranch - * - * @param string $branch - * The branch to test. - * @param string $expected_major - * The expected major version. - */ - public function testCreateFromSupportBranch($branch, $expected_major) { - $version = ModuleVersion::createFromSupportBranch($branch); - $this->assertInstanceOf(ModuleVersion::class, $version); - $this->assertSame($expected_major, $version->getMajorVersion()); - // Version extra can't be determined from a branch. - $this->assertSame(NULL, $version->getVersionExtra()); - } - - /** - * Data provider for testCreateFromSupportBranch(). - */ - public function providerCreateFromSupportBranch() { - // Data provider values are: - // - The version number to test. - // - Array of expected version information with the following keys: - // -'major': The expected result from ::getMajorVersion(). - // -'extra': The expected result from ::getVersionExtra(). - return [ - '0.' => [ - '0.', - '0', - ], - '1.' => [ - '1.', - '1', - ], - '0.1.' => [ - '0.1.', - '0', - ], - '1.2.' => [ - '1.2.', - '1', - ], - '8.x-1.' => [ - '8.x-1.', - '1', - ], - ]; - } - - /** - * @covers ::createFromSupportBranch - * - * @dataProvider provideInvalidBranch - * - * @param string $branch - * The branch to test. - */ - public function testInvalidBranch($branch) { - $this->expectException(\UnexpectedValueException::class); - $this->expectExceptionMessage("Invalid support branch: $branch"); - ModuleVersion::createFromSupportBranch($branch); - } - - /** - * Data provider for testInvalidBranch(). - */ - public function provideInvalidBranch() { - return self::createKeyedTestCases([ - '8.x-1.0', - '8.x-2.x', - '2.x-1.0', - '1.1', - '1.x', - '1.1.x', - '1.1.1', - '1.1.1.1', - ]); - } - - /** - * Creates test case arrays for data provider methods. - * - * @param string[] $test_arguments - * The test arguments. - * - * @return array - * An array with $test_arguments as keys and each element of $test_arguments - * as a single item array - */ - protected static function createKeyedTestCases(array $test_arguments) { - return array_combine( - $test_arguments, - array_map(function ($test_argument) { - return [$test_argument]; - }, $test_arguments) - ); - } - -} -- GitLab