From d105d7261cea3f2fb58f1b3280a39fd1a0f4fe5e Mon Sep 17 00:00:00 2001 From: "kunal.sachdev" <kunal.sachdev@3685163.no-reply.drupal.org> Date: Wed, 8 Jun 2022 14:41:13 +0000 Subject: [PATCH] Issue #3276534 by kunal.sachdev, phenaproxima, Theresa.Grannum: CronUpdater::getMode() should always return a value --- src/CronUpdater.php | 8 +++----- tests/src/Kernel/AutomaticUpdatesKernelTestBase.php | 8 ++++---- .../ReadinessValidation/CronFrequencyValidatorTest.php | 9 +++++++++ .../ReadinessValidationManagerTest.php | 6 ++++-- .../Kernel/ReadinessValidation/SettingsValidatorTest.php | 2 +- .../StagedDatabaseUpdateValidatorTest.php | 2 +- .../ReadinessValidation/StagedProjectsValidatorTest.php | 2 +- tests/src/Kernel/ReleaseChooserTest.php | 4 ++-- 8 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/CronUpdater.php b/src/CronUpdater.php index c5a4359f7f..116b17e287 100644 --- a/src/CronUpdater.php +++ b/src/CronUpdater.php @@ -172,15 +172,13 @@ class CronUpdater extends Updater { * can be done during cron. * - \Drupal\automatic_updates\CronUpdater::ALL if all updates are allowed * during cron. - * - * @todo Make this always return a string, with a sensible default, in - * https://www.drupal.org/i/3276534. */ - final public function getMode(): ?string { + final public function getMode(): string { if (self::$disabled) { return static::DISABLED; } - return $this->configFactory->get('automatic_updates.settings')->get('cron'); + $mode = $this->configFactory->get('automatic_updates.settings')->get('cron'); + return $mode ?: CronUpdater::SECURITY; } } diff --git a/tests/src/Kernel/AutomaticUpdatesKernelTestBase.php b/tests/src/Kernel/AutomaticUpdatesKernelTestBase.php index 8900b78412..8e7046d441 100644 --- a/tests/src/Kernel/AutomaticUpdatesKernelTestBase.php +++ b/tests/src/Kernel/AutomaticUpdatesKernelTestBase.php @@ -65,10 +65,10 @@ abstract class AutomaticUpdatesKernelTestBase extends PackageManagerKernelTestBa // have run. $this->registerPostUpdateFunctions(); - // By default, pretend we're running Drupal core 9.8.1 and a non-security - // update to 9.8.2 is available. - $this->setCoreVersion('9.8.1'); - $this->setReleaseMetadata(['drupal' => __DIR__ . '/../../fixtures/release-history/drupal.9.8.2.xml']); + // By default, pretend we're running Drupal core 9.8.0 and a non-security + // update to 9.8.1 is available. + $this->setCoreVersion('9.8.0'); + $this->setReleaseMetadata(['drupal' => __DIR__ . '/../../fixtures/release-history/drupal.9.8.1-security.xml']); // Set a last cron run time so that the cron frequency validator will run // from a sane state. diff --git a/tests/src/Kernel/ReadinessValidation/CronFrequencyValidatorTest.php b/tests/src/Kernel/ReadinessValidation/CronFrequencyValidatorTest.php index 47d15ae228..07fd5e9351 100644 --- a/tests/src/Kernel/ReadinessValidation/CronFrequencyValidatorTest.php +++ b/tests/src/Kernel/ReadinessValidation/CronFrequencyValidatorTest.php @@ -21,6 +21,15 @@ class CronFrequencyValidatorTest extends AutomaticUpdatesKernelTestBase { */ protected static $modules = ['automatic_updates']; + /** + * {@inheritdoc} + */ + protected function setUp(): void { + parent::setUp(); + $this->setCoreVersion('9.8.0'); + $this->setReleaseMetadata(['drupal' => __DIR__ . '/../../../fixtures/release-history/drupal.9.8.1-security.xml']); + } + /** * Tests that nothing is validated if updates are disabled during cron. */ diff --git a/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php b/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php index 9db8368bfc..4094b1f2de 100644 --- a/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php +++ b/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php @@ -220,7 +220,8 @@ class ReadinessValidationManagerTest extends AutomaticUpdatesKernelTestBase { */ public function testStoredResultsDeletedPostApply(): void { $this->enableModules(['automatic_updates']); - $this->setCoreVersion('9.8.1'); + $this->setCoreVersion('9.8.0'); + $this->setReleaseMetadata(['drupal' => __DIR__ . '/../../../fixtures/release-history/drupal.9.8.1-security.xml']); // The readiness checker should raise a warning, so that the update is not // blocked or aborted. @@ -231,6 +232,7 @@ class ReadinessValidationManagerTest extends AutomaticUpdatesKernelTestBase { /** @var \Drupal\automatic_updates\Validation\ReadinessValidationManager $manager */ $manager = $this->container->get('automatic_updates.readiness_validation_manager') ->run(); + $this->assertValidationResultsEqual($results, $manager->getResults()); TestSubscriber1::setTestResult(NULL, ReadinessCheckEvent::class); // Even though the checker no longer returns any results, the previous // results should be stored. @@ -244,7 +246,7 @@ class ReadinessValidationManagerTest extends AutomaticUpdatesKernelTestBase { /** @var \Drupal\automatic_updates\Updater $updater */ $updater = $this->container->get('automatic_updates.updater'); - $updater->begin(['drupal' => '9.8.2']); + $updater->begin(['drupal' => '9.8.1']); $updater->stage(); $updater->apply(); $updater->destroy(); diff --git a/tests/src/Kernel/ReadinessValidation/SettingsValidatorTest.php b/tests/src/Kernel/ReadinessValidation/SettingsValidatorTest.php index dff44ec010..30493cecf7 100644 --- a/tests/src/Kernel/ReadinessValidation/SettingsValidatorTest.php +++ b/tests/src/Kernel/ReadinessValidation/SettingsValidatorTest.php @@ -51,7 +51,7 @@ class SettingsValidatorTest extends AutomaticUpdatesKernelTestBase { $this->assertCheckerResultsFromManager($expected_results, TRUE); try { $this->container->get('automatic_updates.updater')->begin([ - 'drupal' => '9.8.2', + 'drupal' => '9.8.1', ]); // If there was no exception, ensure we're not expecting any errors. $this->assertSame([], $expected_results); diff --git a/tests/src/Kernel/ReadinessValidation/StagedDatabaseUpdateValidatorTest.php b/tests/src/Kernel/ReadinessValidation/StagedDatabaseUpdateValidatorTest.php index 1269a0cee0..aaf909d17c 100644 --- a/tests/src/Kernel/ReadinessValidation/StagedDatabaseUpdateValidatorTest.php +++ b/tests/src/Kernel/ReadinessValidation/StagedDatabaseUpdateValidatorTest.php @@ -35,7 +35,7 @@ class StagedDatabaseUpdateValidatorTest extends AutomaticUpdatesKernelTestBase { /** @var \Drupal\Tests\automatic_updates\Kernel\TestCronUpdater $updater */ $updater = $this->container->get('automatic_updates.cron_updater'); - $updater->begin(['drupal' => '9.8.2']); + $updater->begin(['drupal' => '9.8.1']); $updater->stage(); } diff --git a/tests/src/Kernel/ReadinessValidation/StagedProjectsValidatorTest.php b/tests/src/Kernel/ReadinessValidation/StagedProjectsValidatorTest.php index 8ff6271c6f..f393369997 100644 --- a/tests/src/Kernel/ReadinessValidation/StagedProjectsValidatorTest.php +++ b/tests/src/Kernel/ReadinessValidation/StagedProjectsValidatorTest.php @@ -46,7 +46,7 @@ class StagedProjectsValidatorTest extends AutomaticUpdatesKernelTestBase { private function validate(array $expected_results): void { /** @var \Drupal\automatic_updates\Updater $updater */ $updater = $this->container->get('automatic_updates.updater'); - $updater->begin(['drupal' => '9.8.2']); + $updater->begin(['drupal' => '9.8.1']); $updater->stage(); try { diff --git a/tests/src/Kernel/ReleaseChooserTest.php b/tests/src/Kernel/ReleaseChooserTest.php index 82c7e686da..52d8e918bd 100644 --- a/tests/src/Kernel/ReleaseChooserTest.php +++ b/tests/src/Kernel/ReleaseChooserTest.php @@ -79,14 +79,14 @@ class ReleaseChooserTest extends AutomaticUpdatesKernelTestBase { 'updater' => 'automatic_updates.cron_updater', 'minor_support' => FALSE, 'installed_version' => '9.8.0', - 'current_minor' => '9.8.2', + 'current_minor' => '9.8.1', 'next_minor' => NULL, ], 'cron, installed 9.8.0, minor support' => [ 'updater' => 'automatic_updates.cron_updater', 'minor_support' => TRUE, 'installed_version' => '9.8.0', - 'current_minor' => '9.8.2', + 'current_minor' => '9.8.1', 'next_minor' => NULL, ], 'cron, installed 9.7.0, no minor support' => [ -- GitLab