diff --git a/core/modules/aggregator/aggregator.install b/core/modules/aggregator/aggregator.install index 84e96147488d11c4ade897d5244498c2c1749282..8722892093b5f35460c97f499c848acefe8d8c17 100644 --- a/core/modules/aggregator/aggregator.install +++ b/core/modules/aggregator/aggregator.install @@ -40,3 +40,13 @@ function aggregator_update_8200() { $field_definition->setRequired(TRUE); $definition_update_manager->updateFieldStorageDefinition($field_definition); } + +/** + * Add a default value for the 'Refresh' field for aggregator feed entities. + */ +function aggregator_update_8501() { + $definition_update_manager = \Drupal::entityDefinitionUpdateManager(); + $field_definition = $definition_update_manager->getFieldStorageDefinition('refresh', 'aggregator_feed'); + $field_definition->setDefaultValue(3600); + $definition_update_manager->updateFieldStorageDefinition($field_definition); +} diff --git a/core/modules/aggregator/src/Controller/AggregatorController.php b/core/modules/aggregator/src/Controller/AggregatorController.php index 0090ca31076f62e8de546adf45ea8ca53f22b417..b459b196ccbd441011649218a73f73ec7dbd91e7 100644 --- a/core/modules/aggregator/src/Controller/AggregatorController.php +++ b/core/modules/aggregator/src/Controller/AggregatorController.php @@ -47,10 +47,7 @@ public static function create(ContainerInterface $container) { * A form array as expected by drupal_render(). */ public function feedAdd() { - $feed = $this->entityManager()->getStorage('aggregator_feed') - ->create([ - 'refresh' => 3600, - ]); + $feed = $this->entityManager()->getStorage('aggregator_feed')->create(); return $this->entityFormBuilder()->getForm($feed); } diff --git a/core/modules/aggregator/src/Entity/Feed.php b/core/modules/aggregator/src/Entity/Feed.php index 3b14e8c24e367b4a2c0a93f0fe064d94f5f19e0e..e27450c7a2a9e7e57c73ef4872f40da5eccdaeb1 100644 --- a/core/modules/aggregator/src/Entity/Feed.php +++ b/core/modules/aggregator/src/Entity/Feed.php @@ -168,6 +168,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { $fields['refresh'] = BaseFieldDefinition::create('list_integer') ->setLabel(t('Update interval')) ->setDescription(t('The length of time between feed updates. Requires a correctly configured cron maintenance task.')) + ->setDefaultValue(3600) ->setSetting('unsigned', TRUE) ->setRequired(TRUE) ->setSetting('allowed_values', $period) diff --git a/core/modules/aggregator/tests/src/Functional/Update/AggregatorUpdateTest.php b/core/modules/aggregator/tests/src/Functional/Update/AggregatorUpdateTest.php index 9d659d018ac58f6bf0dee450b16c0f3f18010383..64bdb8e0181093522496c20257f1ae8435a97c1f 100644 --- a/core/modules/aggregator/tests/src/Functional/Update/AggregatorUpdateTest.php +++ b/core/modules/aggregator/tests/src/Functional/Update/AggregatorUpdateTest.php @@ -38,4 +38,21 @@ public function testSourceFeedRequired() { $this->assertTrue($field_definition->isRequired()); } + /** + * Tests that the 'Update interval' field has a default value. + */ + public function testUpdateIntervalDefaultValue() { + // Check that the 'refresh' field does not have a default value prior to the + // update. + $field_definition = \Drupal::entityDefinitionUpdateManager()->getFieldStorageDefinition('refresh', 'aggregator_feed'); + $this->assertSame([], $field_definition->getDefaultValueLiteral()); + + // Run updates. + $this->runUpdates(); + + // Check that the 'refresh' has a default value now. + $field_definition = \Drupal::entityDefinitionUpdateManager()->getFieldStorageDefinition('refresh', 'aggregator_feed'); + $this->assertSame([['value' => 3600]], $field_definition->getDefaultValueLiteral()); + } + }