diff --git a/config/install/config_help.topic.config_basic.yml b/config/install/config_help.topic.config_basic.yml index 4b6b45e..b316530 100644 --- a/config/install/config_help.topic.config_basic.yml +++ b/config/install/config_help.topic.config_basic.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.config_error.yml b/config/install/config_help.topic.config_error.yml index 483e203..3f76dab 100644 --- a/config/install/config_help.topic.config_error.yml +++ b/config/install/config_help.topic.config_error.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.config_help.yml b/config/install/config_help.topic.config_help.yml index 2488e41..1ad630d 100644 --- a/config/install/config_help.topic.config_help.yml +++ b/config/install/config_help.topic.config_help.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.config_help_form.yml b/config/install/config_help.topic.config_help_form.yml index f377a65..81ba97b 100644 --- a/config/install/config_help.topic.config_help_form.yml +++ b/config/install/config_help.topic.config_help_form.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.config_help_writing.yml b/config/install/config_help.topic.config_help_writing.yml index ac84f92..8d4eeeb 100644 --- a/config/install/config_help.topic.config_help_writing.yml +++ b/config/install/config_help.topic.config_help_writing.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.maintenance.yml b/config/install/config_help.topic.maintenance.yml index fa35de6..5d7a4f6 100644 --- a/config/install/config_help.topic.maintenance.yml +++ b/config/install/config_help.topic.maintenance.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.menu_overview.yml b/config/install/config_help.topic.menu_overview.yml index 6d29ae1..25c3a90 100644 --- a/config/install/config_help.topic.menu_overview.yml +++ b/config/install/config_help.topic.menu_overview.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.security.yml b/config/install/config_help.topic.security.yml index d44e373..6f83731 100644 --- a/config/install/config_help.topic.security.yml +++ b/config/install/config_help.topic.security.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.security_account_settings.yml b/config/install/config_help.topic.security_account_settings.yml index 6261d2e..df458c3 100644 --- a/config/install/config_help.topic.security_account_settings.yml +++ b/config/install/config_help.topic.security_account_settings.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.ui_accessibility.yml b/config/install/config_help.topic.ui_accessibility.yml index 608dcf3..9f8105f 100644 --- a/config/install/config_help.topic.ui_accessibility.yml +++ b/config/install/config_help.topic.ui_accessibility.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.ui_components.yml b/config/install/config_help.topic.ui_components.yml index e864d25..e1a8c0c 100644 --- a/config/install/config_help.topic.ui_components.yml +++ b/config/install/config_help.topic.ui_components.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.ui_contextual.yml b/config/install/config_help.topic.ui_contextual.yml index acbecc5..f159770 100644 --- a/config/install/config_help.topic.ui_contextual.yml +++ b/config/install/config_help.topic.ui_contextual.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.ui_shortcuts.yml b/config/install/config_help.topic.ui_shortcuts.yml index 001f69a..a7e55a1 100644 --- a/config/install/config_help.topic.ui_shortcuts.yml +++ b/config/install/config_help.topic.ui_shortcuts.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/config/install/config_help.topic.ui_tours.yml b/config/install/config_help.topic.ui_tours.yml index ec45443..b218460 100644 --- a/config/install/config_help.topic.ui_tours.yml +++ b/config/install/config_help.topic.ui_tours.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: { } theme: { } diff --git a/src/Entity/HelpTopic.php b/src/Entity/HelpTopic.php index daa019a..277195d 100644 --- a/src/Entity/HelpTopic.php +++ b/src/Entity/HelpTopic.php @@ -261,6 +261,22 @@ class HelpTopic extends ConfigEntityBase implements HelpTopicInterface { } /** + * {@inheritdoc} + */ + public function calculateDependencies() { + parent::calculateDependencies(); + + if ($this->body_format) { + $format = $this->entityManager()->getStorage('filter_format')->load($this->body_format); + if ($format) { + $this->addDependency('config', $format->getConfigDependencyName()); + } + } + + return $this; + } + + /** * Makes a cache tag from a help topic ID. * * @param string $id diff --git a/tests/modules/config_help_test/config/optional/config_help.topic.help_test.yml b/tests/modules/config_help_test/config/optional/config_help.topic.help_test.yml index 9ea5642..2dddc27 100644 --- a/tests/modules/config_help_test/config/optional/config_help.topic.help_test.yml +++ b/tests/modules/config_help_test/config/optional/config_help.topic.help_test.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: - config_help_test diff --git a/tests/modules/config_help_test/config/optional/config_help.topic.help_test_additional.yml b/tests/modules/config_help_test/config/optional/config_help.topic.help_test_additional.yml index 6bc550a..f2ca0cf 100644 --- a/tests/modules/config_help_test/config/optional/config_help.topic.help_test_additional.yml +++ b/tests/modules/config_help_test/config/optional/config_help.topic.help_test_additional.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: - config_help_test diff --git a/tests/modules/config_help_test/config/optional/config_help.topic.help_test_linked.yml b/tests/modules/config_help_test/config/optional/config_help.topic.help_test_linked.yml index 43ba6ee..1d639fc 100644 --- a/tests/modules/config_help_test/config/optional/config_help.topic.help_test_linked.yml +++ b/tests/modules/config_help_test/config/optional/config_help.topic.help_test_linked.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: - config_help_test diff --git a/tests/modules/config_help_test/config/optional/config_help.topic.help_test_locked.yml b/tests/modules/config_help_test/config/optional/config_help.topic.help_test_locked.yml index 2a608fb..c96d5c2 100644 --- a/tests/modules/config_help_test/config/optional/config_help.topic.help_test_locked.yml +++ b/tests/modules/config_help_test/config/optional/config_help.topic.help_test_locked.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + config: + - filter.format.help enforced: module: - config_help_test diff --git a/tests/src/Functional/HelpTopicTest.php b/tests/src/Functional/HelpTopicTest.php index b690837..9a73e8d 100644 --- a/tests/src/Functional/HelpTopicTest.php +++ b/tests/src/Functional/HelpTopicTest.php @@ -136,6 +136,7 @@ class HelpTopicTest extends BrowserTestBase { 'suffix_tags' => '

', ], ], + 'body_format' => 'help', 'top_level' => TRUE, 'locked' => TRUE, 'related' => ['config_help'], @@ -151,6 +152,9 @@ class HelpTopicTest extends BrowserTestBase { /** @var \Drupal\config_help\HelpTopicInterface $foo */ $foo = HelpTopic::create($values); $foo->setEnforcedDependencies($dependencies); + // Normally on config entity save, dependencies would be calculated. + // Force it manually. + $foo->calculateDependencies(); // Export and import the topic. $foo_export = Yaml::encode($foo->toArray()); @@ -163,6 +167,7 @@ class HelpTopicTest extends BrowserTestBase { 'id' => 'id', 'label' => 'label', 'getBody' => FALSE, + 'getBodyFormat' => 'body_format', 'isTopLevel' => 'top_level', 'isLocked' => 'locked', 'getRelated' => 'related', @@ -183,6 +188,9 @@ class HelpTopicTest extends BrowserTestBase { // getBody() and setBody() methods are checked in a different test method. $this->assertEqual($foo->getEnforcedDependencies(), $dependencies, 'Data for dependencies is the same as method getEnforcedDependencies'); + // Verify that the body format dependency is there. + $after_dependencies = $bar->getDependencies(); + $this->assertEqual($after_dependencies['config'][0], 'filter.format.help'); } /** @@ -301,12 +309,14 @@ class HelpTopicTest extends BrowserTestBase { 'config:config_help.topic.help_test', 'config:config_help.topic.config_help', 'config:config_help.topic.help_test_linked', + 'config:filter.format.help', ], ], 'config_help' => [ 'name' => 'Building a help system', 'cache_tags' => [ 'config:config_help.topic.config_help', + 'config:filter.format.help', ], ], ];