diff --git a/core/modules/user/src/AccountSettingsForm.php b/core/modules/user/src/AccountSettingsForm.php index 8fc998bb4b409f8f9939d1752d5dfe447c5a2c10..d164f6ece80c4c15caa949cdf7a651949d200c09 100644 --- a/core/modules/user/src/AccountSettingsForm.php +++ b/core/modules/user/src/AccountSettingsForm.php @@ -445,6 +445,9 @@ public function submitForm(array &$form, FormStateInterface $form_state) { $this->config('system.site') ->set('mail_notification', $form_state->getValue('mail_notification_address')) ->save(); + + // Clear field definition cache for signatures. + \Drupal::entityManager()->clearCachedFieldDefinitions(); } } diff --git a/core/modules/user/src/Tests/UserSignatureTest.php b/core/modules/user/src/Tests/UserSignatureTest.php index 6c86eb2a573a9becc9cc5e1b04c681d2e34677b5..1eb9af738808362a0cae04ec2e16ca8a0d178236 100644 --- a/core/modules/user/src/Tests/UserSignatureTest.php +++ b/core/modules/user/src/Tests/UserSignatureTest.php @@ -21,7 +21,7 @@ class UserSignatureTest extends WebTestBase { * * @var array */ - public static $modules = array('node', 'comment'); + public static $modules = array('node', 'comment', 'field_ui'); protected function setUp() { parent::setUp(); @@ -62,7 +62,7 @@ protected function setUp() { // Create regular and administrative users. $this->web_user = $this->drupalCreateUser(array('post comments')); - $admin_permissions = array('post comments', 'administer comments'); + $admin_permissions = array('post comments', 'administer comments', 'administer user form display', 'administer account settings'); foreach (filter_formats() as $format) { if ($permission = $format->getPermissionName()) { $admin_permissions[] = $permission; @@ -129,5 +129,14 @@ function testUserSignature() { // Verify that the user signature's text format's cache tag is present. $this->drupalGet('node/' . $node->id()); $this->assertTrue(in_array('filter_format:filtered_html_format', explode(' ', $this->drupalGetHeader('X-Drupal-Cache-Tags')))); + + // Verify the signature field is available on Manage form display page. + \Drupal::config('user.settings')->set('signatures', 0)->save(); + \Drupal::entityManager()->clearCachedFieldDefinitions(); + $this->drupalGet('admin/config/people/accounts/form-display'); + $this->assertNoText('Signature settings'); + $this->drupalPostForm('admin/config/people/accounts', array('user_signatures' => TRUE), t('Save configuration')); + $this->drupalGet('admin/config/people/accounts/form-display'); + $this->assertText('Signature settings'); } }