diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module index 9240ce6..1599bda 100644 --- a/core/modules/comment/comment.module +++ b/core/modules/comment/comment.module @@ -179,6 +179,12 @@ function comment_field_storage_config_insert(FieldStorageConfigInterface $field_ if (!_comment_entity_uses_integer_id($entity_type_id)) { throw new \UnexpectedValueException('You cannot attach a comment field to an entity with a non-integer ID field'); } + if ($entity_type_id === 'user') { + // Make sure that we don't enable the comment field formatter by default + // on the compact view mode, as this can lead to recursion. + $display = entity_get_display('user', 'user', 'compact'); + $display->removeComponent($field_storage->getName())->save(); + } } } diff --git a/core/modules/comment/src/Tests/CommentUserTest.php b/core/modules/comment/src/Tests/CommentUserTest.php new file mode 100644 index 0000000..52f73a9 --- /dev/null +++ b/core/modules/comment/src/Tests/CommentUserTest.php @@ -0,0 +1,89 @@ +container->get('theme_handler')->install(array('bartik', 'seven')); + $this->config('system.theme') + ->set('default', 'bartik') + ->set('admin', 'seven') + ->save(); + + // Create test user. + $this->adminUser = $this->drupalCreateUser([ + 'administer comments', + 'skip comment approval', + 'post comments', + 'access comments', + 'administer user fields', + 'access user profiles', + ]); + + $this->drupalLogin($this->adminUser); + $this->drupalPlaceBlock('system_breadcrumb_block'); + + $this->fieldUIAddNewField('admin/config/people/accounts', 'comments', 'Comments', 'comment', [ + 'settings[comment_type]' => 'comment', + ]); + } + + /** + * Tests anonymous commenting on a user. + */ + public function testUserCommenting() { + // Navigate to user page. + $this->drupalGet('user/' . $this->adminUser->id()); + // Comment on the user. + $edit = []; + $edit['subject[0][value]'] = 'I can comment on a user?'; + $this->drupalPostForm(NULL, $edit, t('Save')); + $this->assertUrl('user/' . $this->adminUser->id() . '#comment-1'); + $this->assertText('Your comment has been posted'); + $this->assertResponse(200); + $this->assertText('I can comment on a user'); + } + +} diff --git a/core/modules/comment/tests/modules/comment_user_picture_test/comment_user_picture_test.info.yml b/core/modules/comment/tests/modules/comment_user_picture_test/comment_user_picture_test.info.yml new file mode 100644 index 0000000..0582790 --- /dev/null +++ b/core/modules/comment/tests/modules/comment_user_picture_test/comment_user_picture_test.info.yml @@ -0,0 +1,11 @@ +name: 'Comment test user picture' +type: module +description: 'Provides default config for testing user pictures in comments.' +package: Testing +version: VERSION +core: 8.x +dependencies: + - comment + - views + - image + - user diff --git a/core/modules/comment/tests/modules/comment_user_picture_test/config/install/comment.type.comment.yml b/core/modules/comment/tests/modules/comment_user_picture_test/config/install/comment.type.comment.yml new file mode 100644 index 0000000..ed375e4 --- /dev/null +++ b/core/modules/comment/tests/modules/comment_user_picture_test/config/install/comment.type.comment.yml @@ -0,0 +1,6 @@ +id: comment +label: 'Default comments' +description: 'Allows commenting on users' +target_entity_type_id: user +status: true +langcode: en diff --git a/core/modules/comment/tests/modules/comment_user_picture_test/config/install/core.entity_form_display.user.user.default.yml b/core/modules/comment/tests/modules/comment_user_picture_test/config/install/core.entity_form_display.user.user.default.yml new file mode 100644 index 0000000..d93cb2c --- /dev/null +++ b/core/modules/comment/tests/modules/comment_user_picture_test/config/install/core.entity_form_display.user.user.default.yml @@ -0,0 +1,17 @@ +id: user.user.default +targetEntityType: user +bundle: user +mode: default +content: + user_picture: + type: image_image + settings: + progress_indicator: throbber + preview_image_style: thumbnail + third_party_settings: { } + weight: -1 +status: true +dependencies: + module: + - image + - user diff --git a/core/modules/comment/tests/modules/comment_user_picture_test/config/install/field.field.user.user.user_picture.yml b/core/modules/comment/tests/modules/comment_user_picture_test/config/install/field.field.user.user.user_picture.yml new file mode 100644 index 0000000..e1d8b64 --- /dev/null +++ b/core/modules/comment/tests/modules/comment_user_picture_test/config/install/field.field.user.user.user_picture.yml @@ -0,0 +1,31 @@ +id: user.user.user_picture +status: true +langcode: en +entity_type: user +bundle: user +field_name: user_picture +label: Picture +description: 'Your virtual face or picture.' +required: false +default_value: { } +default_value_callback: '' +settings: + file_extensions: 'png gif jpg jpeg' + file_directory: pictures + max_filesize: '30 KB' + alt_field: false + title_field: false + max_resolution: 85x85 + min_resolution: '' + default_image: + uuid: null + alt: '' + title: '' + width: null + height: null + alt_field_required: false + title_field_required: false +field_type: image +dependencies: + config: + - field.storage.user.user_picture diff --git a/core/modules/comment/tests/modules/comment_user_picture_test/config/install/field.storage.user.user_picture.yml b/core/modules/comment/tests/modules/comment_user_picture_test/config/install/field.storage.user.user_picture.yml new file mode 100644 index 0000000..b7e3141 --- /dev/null +++ b/core/modules/comment/tests/modules/comment_user_picture_test/config/install/field.storage.user.user_picture.yml @@ -0,0 +1,25 @@ +id: user.user_picture +status: true +langcode: en +field_name: user_picture +entity_type: user +type: image +settings: + uri_scheme: public + default_image: + uuid: null + alt: '' + title: '' + width: null + height: null +module: image +locked: false +cardinality: 1 +indexes: + target_id: + - target_id +dependencies: + module: + - image + - user +persist_with_no_fields: false