diff --git a/core/modules/comment/comment.views.inc b/core/modules/comment/comment.views.inc
index 66e2083..e77d22c 100644
--- a/core/modules/comment/comment.views.inc
+++ b/core/modules/comment/comment.views.inc
@@ -250,7 +250,7 @@ function comment_views_data() {
   $data['comment']['view_comment'] = array(
     'field' => array(
       'title' => t('Link to comment'),
-      'help' => t('Provide a simple link to view the comment.'),
+      'help' => t('Provide a simple link to the comment.'),
       'id' => 'comment_link',
     ),
   );
diff --git a/core/modules/comment/config/action.action.comment_delete_action.yml b/core/modules/comment/config/action.action.comment_delete_action.yml
new file mode 100644
index 0000000..eda1ce0
--- /dev/null
+++ b/core/modules/comment/config/action.action.comment_delete_action.yml
@@ -0,0 +1,6 @@
+id: comment_delete_action
+label: 'Delete comment'
+status: '1'
+langcode: en
+type: comment
+plugin: comment_delete_action
diff --git a/core/modules/comment/config/views.view.comments.yml b/core/modules/comment/config/views.view.comments.yml
new file mode 100644
index 0000000..c5c57cd
--- /dev/null
+++ b/core/modules/comment/config/views.view.comments.yml
@@ -0,0 +1,1487 @@
+base_field: cid
+base_table: comment
+core: 8.x
+description: 'Find and manage comments.'
+status: '1'
+display:
+  page_1:
+    display_plugin: page
+    id: page_1
+    display_title: Comments
+    position: ''
+    display_options:
+      path: admin/content/comment
+      menu:
+        type: tab
+        title: Comments
+        description: 'Comments published'
+        name: admin
+        weight: '0'
+        context: '0'
+      display_description: ''
+      filters:
+        status:
+          id: status
+          table: comment
+          field: status
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: '='
+          value: '1'
+          group: '1'
+          exposed: '0'
+          expose:
+            operator_id: '0'
+            label: ''
+            description: ''
+            use_operator: '0'
+            operator: '0'
+            identifier: ''
+            required: '0'
+            remember: '0'
+            multiple: '0'
+            remember_roles:
+              authenticated: authenticated
+          is_grouped: '0'
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: '1'
+            widget: select
+            multiple: '0'
+            remember: '0'
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+      defaults:
+        filters: '0'
+        filter_groups: '0'
+        fields: '0'
+      filter_groups:
+        operator: AND
+        groups:
+          1: AND
+      fields:
+        action_bulk_form:
+          id: action_bulk_form
+          table: action
+          field: action_bulk_form
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Bulk update'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          include_exclude: include
+          selected_actions:
+            comment_delete_action: comment_delete_action
+            comment_unpublish_action: comment_unpublish_action
+          plugin_id: action_bulk_form
+        subject:
+          id: subject
+          table: comment
+          field: subject
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Subject
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '0'
+            ellipsis: '0'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_comment: '1'
+          link_to_node: '0'
+        name:
+          id: name
+          table: comment
+          field: name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Author
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_user: '1'
+          plugin_id: comment_username
+        title:
+          id: title
+          table: node_field_data
+          field: title
+          relationship: nid
+          group_type: group
+          admin_label: ''
+          label: 'Posted in'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_node: '1'
+          plugin_id: node
+        changed:
+          id: changed
+          table: comment
+          field: changed
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Updated
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          date_format: short
+          custom_date_format: ''
+          timezone: ''
+          plugin_id: date
+        edit_comment:
+          id: edit_comment
+          table: comment
+          field: edit_comment
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: '1'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          text: Edit
+          link_to_node: '0'
+          destination: '0'
+          plugin_id: comment_link_edit
+        delete_comment:
+          id: delete_comment
+          table: comment
+          field: delete_comment
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: '1'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          text: Delete
+          link_to_node: '0'
+          plugin_id: comment_link_delete
+        dropbutton:
+          id: dropbutton
+          table: views
+          field: dropbutton
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Operations
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          fields:
+            edit_comment: edit_comment
+            delete_comment: delete_comment
+            action_bulk_form: '0'
+            subject: '0'
+            name: '0'
+            title: '0'
+            changed: '0'
+          destination: '1'
+          plugin_id: dropbutton
+  page_2:
+    display_plugin: page
+    id: page_2
+    display_title: 'Unapproved comments'
+    position: ''
+    display_options:
+      display_description: 'Comments pending to approval'
+      path: admin/content/comment/approval
+      menu:
+        type: tab
+        title: 'Unapproved comments'
+        description: ''
+        name: admin
+        weight: '0'
+        context: '0'
+      filters:
+        status:
+          id: status
+          table: comment
+          field: status
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: '='
+          value: '0'
+          group: '1'
+          exposed: '0'
+          expose:
+            operator_id: '0'
+            label: ''
+            description: ''
+            use_operator: '0'
+            operator: '0'
+            identifier: ''
+            required: '0'
+            remember: '0'
+            multiple: '0'
+            remember_roles:
+              authenticated: authenticated
+          is_grouped: '0'
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: '1'
+            widget: select
+            multiple: '0'
+            remember: '0'
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+      defaults:
+        filters: '0'
+        filter_groups: '0'
+        fields: '0'
+      filter_groups:
+        operator: AND
+        groups:
+          1: AND
+      fields:
+        action_bulk_form:
+          id: action_bulk_form
+          table: action
+          field: action_bulk_form
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Bulk update'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          include_exclude: include
+          selected_actions:
+            comment_delete_action: comment_delete_action
+            comment_publish_action: comment_publish_action
+          plugin_id: action_bulk_form
+        subject:
+          id: subject
+          table: comment
+          field: subject
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Subject
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '0'
+            ellipsis: '0'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_comment: '1'
+          link_to_node: '0'
+        name:
+          id: name
+          table: comment
+          field: name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Author
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_user: '1'
+          plugin_id: comment_username
+        title:
+          id: title
+          table: node_field_data
+          field: title
+          relationship: nid
+          group_type: group
+          admin_label: ''
+          label: 'Posted in'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_node: '1'
+          plugin_id: node
+        changed:
+          id: changed
+          table: comment
+          field: changed
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Updated
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          date_format: short
+          custom_date_format: ''
+          timezone: ''
+          plugin_id: date
+        approve_comment:
+          id: approve_comment
+          table: comment
+          field: approve_comment
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: '1'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          text: Approve
+          link_to_node: '0'
+          plugin_id: comment_link_approve
+        edit_comment:
+          id: edit_comment
+          table: comment
+          field: edit_comment
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: '1'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          text: Edit
+          link_to_node: '0'
+          destination: '0'
+          plugin_id: comment_link_edit
+        delete_comment:
+          id: delete_comment
+          table: comment
+          field: delete_comment
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: '1'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          text: Delete
+          link_to_node: '0'
+          plugin_id: comment_link_delete
+        dropbutton:
+          id: dropbutton
+          table: views
+          field: dropbutton
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Operations
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          fields:
+            approve_comment: approve_comment
+            edit_comment: edit_comment
+            delete_comment: delete_comment
+            action_bulk_form: '0'
+            subject: '0'
+            name: '0'
+            title: '0'
+            changed: '0'
+          destination: '1'
+          plugin_id: dropbutton
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: ''
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'administer comments'
+      cache:
+        type: none
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: '0'
+          distinct: '0'
+          slave: '0'
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: '0'
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: '1'
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: full
+        options:
+          items_per_page: '50'
+          offset: '0'
+          id: '0'
+          total_pages: ''
+          expose:
+            items_per_page: '0'
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 20, 40, 60'
+            items_per_page_options_all: '0'
+            items_per_page_options_all_label: '- All -'
+            offset: '0'
+            offset_label: Offset
+          tags:
+            previous: '‹ previous'
+            next: 'next ›'
+            first: '« first'
+            last: 'last »'
+          quantity: '9'
+      style:
+        type: table
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: '1'
+          row_class_special: '1'
+          override: '1'
+          sticky: '0'
+          caption: ''
+          summary: ''
+          description: ''
+          columns:
+            action_bulk_form: action_bulk_form
+            subject: subject
+            name: name
+            title: title
+            changed: changed
+            approve_comment: approve_comment
+            edit_comment: edit_comment
+            delete_comment: delete_comment
+            dropbutton: dropbutton
+          info:
+            action_bulk_form:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '1'
+              responsive: ''
+            subject:
+              sortable: '1'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            name:
+              sortable: '1'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            title:
+              sortable: '1'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            changed:
+              sortable: '1'
+              default_sort_order: desc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            approve_comment:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            edit_comment:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            delete_comment:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            dropbutton:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+          default: changed
+          empty_table: '1'
+      row:
+        type: fields
+      relationships:
+        nid:
+          id: nid
+          table: comment
+          field: nid
+          required: '1'
+          relationship: none
+          group_type: group
+          admin_label: Content
+      fields:
+        action_bulk_form:
+          id: action_bulk_form
+          table: action
+          field: action_bulk_form
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Bulk update'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          include_exclude: include
+          selected_actions:
+            comment_unpublish_action: comment_unpublish_action
+          plugin_id: action_bulk_form
+        subject:
+          id: subject
+          table: comment
+          field: subject
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Subject
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '0'
+            ellipsis: '0'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_comment: '1'
+          link_to_node: '0'
+        name:
+          id: name
+          table: comment
+          field: name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Author
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_user: '1'
+          plugin_id: comment_username
+        title:
+          id: title
+          table: node_field_data
+          field: title
+          relationship: nid
+          group_type: group
+          admin_label: ''
+          label: 'Posted in'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_node: '1'
+          plugin_id: node
+        changed:
+          id: changed
+          table: comment
+          field: changed
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Updated
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          date_format: short
+          custom_date_format: ''
+          timezone: ''
+          plugin_id: date
+      filters:
+        status:
+          id: status
+          table: comment
+          field: status
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: '='
+          value: '1'
+          group: '1'
+          exposed: '0'
+          expose:
+            operator_id: '0'
+            label: ''
+            description: ''
+            use_operator: '0'
+            operator: '0'
+            identifier: ''
+            required: '0'
+            remember: '0'
+            multiple: '0'
+            remember_roles:
+              authenticated: authenticated
+          is_grouped: '0'
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: '1'
+            widget: select
+            multiple: '0'
+            remember: '0'
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+      sorts:
+        created:
+          id: created
+          table: comment
+          field: created
+          order: DESC
+          relationship: none
+          group_type: group
+          admin_label: ''
+          exposed: '0'
+          expose:
+            label: ''
+          granularity: second
+      title: Comments
+      header: {  }
+      footer: {  }
+      empty:
+        area_text_custom:
+          id: area_text_custom
+          table: views
+          field: area_text_custom
+          relationship: none
+          group_type: group
+          admin_label: ''
+          empty: '1'
+          tokenize: '0'
+          content: 'No comments available.'
+          plugin_id: text_custom
+      arguments: {  }
+label: Comments
+module: views
+id: comments
+tag: default
+uuid: df052bd2-a90f-4632-811b-277cf6ef38eb
+langcode: en
diff --git a/core/modules/comment/lib/Drupal/comment/CommentStorageController.php b/core/modules/comment/lib/Drupal/comment/CommentStorageController.php
index 4e6ca4c..0e0b5b2 100644
--- a/core/modules/comment/lib/Drupal/comment/CommentStorageController.php
+++ b/core/modules/comment/lib/Drupal/comment/CommentStorageController.php
@@ -232,4 +232,5 @@ public function getChildCids(array $comments) {
       ->execute()
       ->fetchCol();
   }
+
 }
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/Action/DeleteComment.php b/core/modules/comment/lib/Drupal/comment/Plugin/Action/DeleteComment.php
new file mode 100644
index 0000000..6bfcb54
--- /dev/null
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/Action/DeleteComment.php
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\comment\Plugin\Action\DeleteComment.
+ */
+
+namespace Drupal\comment\Plugin\Action;
+
+use Drupal\Core\Annotation\Action;
+use Drupal\Core\Annotation\Translation;
+use Drupal\Core\Action\ActionBase;
+use Drupal\Core\Cache\Cache;
+
+/**
+ * Deletes a comment.
+ *
+ * @Action(
+ *   id = "comment_delete_action",
+ *   label = @Translation("Delete comment"),
+ *   type = "comment"
+ * )
+ */
+class DeleteComment extends ActionBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function execute($comment = NULL) {
+    $comment->delete();
+    Cache::invalidateTags(array('content' => TRUE));
+  }
+
+}
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/Link.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/Link.php
index d1e19f5..9d7b222 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/Link.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/Link.php
@@ -9,7 +9,7 @@
 
 use Drupal\views\Plugin\views\field\FieldPluginBase;
 use Drupal\Component\Annotation\PluginID;
-
+use Drupal\comment\CommentInterface;
 /**
  * Base field handler to present a link.
  *
@@ -44,13 +44,24 @@ public function query() {}
 
   function render($values) {
     $comment = $this->getEntity($values);
-    return $this->render_link($comment, $values);
+    return $this->renderLink($comment, $values);
   }
 
-  function render_link($data, $values) {
+  /**
+   * Renders the comment action link in the view.
+   *
+   * @param \Drupal\comment\CommentInterface $comment
+   *   Comment entity.
+   * @param array $values
+   *   Array of values of the view row.
+   *
+   * @return string
+   *   Rendered text to display.
+   *
+   */
+  public function renderLink(CommentInterface $comment, $values) {
     $text = !empty($this->options['text']) ? $this->options['text'] : t('view');
-    $comment = $data;
-    $nid = $comment->nid;
+    $nid = $comment->nid->value;
     $cid = $comment->id();
 
     $this->options['alter']['make_link'] = TRUE;
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkApprove.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkApprove.php
index 49bcb58..fb20cc5 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkApprove.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkApprove.php
@@ -8,6 +8,7 @@
 namespace Drupal\comment\Plugin\views\field;
 
 use Drupal\Component\Annotation\PluginID;
+use Drupal\comment\CommentInterface;
 
 /**
  * Provides a comment approve link.
@@ -23,17 +24,17 @@ public function access() {
     return user_access('administer comments');
   }
 
-  function render_link($data, $values) {
-    $status = $this->getValue($values, 'status');
-
+  /**
+   * {@inheritdoc}
+   */
+  public function renderLink(CommentInterface $comment, $values) {
     // Don't show an approve link on published nodes.
-    if ($status == COMMENT_PUBLISHED) {
-      return;
+    if ($comment->status->value == COMMENT_PUBLISHED) {
+      return '';
     }
 
     $text = !empty($this->options['text']) ? $this->options['text'] : t('approve');
-    $cid =  $this->getValue($values, 'cid');
-
+    $cid =  $comment->id();
     $this->options['alter']['make_link'] = TRUE;
     $this->options['alter']['path'] = "comment/" . $cid . "/approve";
     $this->options['alter']['query'] = drupal_get_destination() + array('token' => drupal_get_token("comment/$cid/approve"));
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkDelete.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkDelete.php
index 23c96de..d75ba03 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkDelete.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkDelete.php
@@ -8,6 +8,7 @@
 namespace Drupal\comment\Plugin\views\field;
 
 use Drupal\Component\Annotation\PluginID;
+use Drupal\comment\CommentInterface;
 
 /**
  * Field handler to present a link to delete a comment.
@@ -19,16 +20,22 @@
 class LinkDelete extends Link {
 
   public function access() {
-    //needs permission to administer comments in general
+    // Needs permission to administer comments in general.
     return user_access('administer comments');
   }
 
-  function render_link($data, $values) {
-    $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
-    $cid =  $this->getValue($values, 'cid');
+  /**
+   * {@inheritdoc}
+   */
+  public function renderLink(CommentInterface $comment, $values) {
+    // Ensure user has access to edit this comment.
+    if (!$comment->access('delete')) {
+      return '';
+    }
 
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
     $this->options['alter']['make_link'] = TRUE;
-    $this->options['alter']['path'] = "comment/" . $cid . "/delete";
+    $this->options['alter']['path'] = "comment/" . $comment->id() . "/delete";
     $this->options['alter']['query'] = drupal_get_destination();
 
     return $text;
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkEdit.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkEdit.php
index d77b824..8ea3624 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkEdit.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkEdit.php
@@ -8,6 +8,7 @@
 namespace Drupal\comment\Plugin\views\field;
 
 use Drupal\Component\Annotation\PluginID;
+use Drupal\comment\CommentInterface;
 
 /**
  * Field handler to present a link to edit a comment.
@@ -37,12 +38,19 @@ public function buildOptionsForm(&$form, &$form_state) {
     );
   }
 
-  function render_link($data, $values) {
-    parent::render_link($data, $values);
+  public function access() {
+    // Needs permission to administer comments in general.
+    return user_access('administer comments');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function renderLink(CommentInterface $comment, $values) {
+    parent::renderLink($comment, $values);
     // Ensure user has access to edit this comment.
-    $comment = $this->getValue($values);
     if (!$comment->access('update')) {
-      return;
+      return '';
     }
 
     $text = !empty($this->options['text']) ? $this->options['text'] : t('edit');
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkReply.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkReply.php
index 112462f..b70073d 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkReply.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/LinkReply.php
@@ -8,6 +8,7 @@
 namespace Drupal\comment\Plugin\views\field;
 
 use Drupal\Component\Annotation\PluginID;
+use Drupal\comment\CommentInterface;
 
 /**
  * Field handler to present a link to reply to a comment.
@@ -19,17 +20,18 @@
 class LinkReply extends Link {
 
   public function access() {
-    //check for permission to reply to comments
+    // Check for the permission to reply to comments.
     return user_access('post comments');
   }
 
-  function render_link($data, $values) {
+  /**
+   * {@inheritdoc}
+   */
+  public function renderLink(CommentInterface $comment, $values) {
     $text = !empty($this->options['text']) ? $this->options['text'] : t('reply');
-    $nid =  $this->getValue($values, 'nid');
-    $cid =  $this->getValue($values, 'cid');
 
     $this->options['alter']['make_link'] = TRUE;
-    $this->options['alter']['path'] = "comment/reply/" . $nid . '/' . $cid;
+    $this->options['alter']['path'] = "comment/reply/" . $comment->nid->value . '/' . $comment->id();
 
     return $text;
   }
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentActionsTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentActionsTest.php
index 94a1651..24c12b2 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentActionsTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentActionsTest.php
@@ -19,6 +19,13 @@ class CommentActionsTest extends CommentTestBase {
    */
   public static $modules = array('dblog', 'action');
 
+  /**
+   * The entity manager.
+   *
+   * @var \Drupal\Core\Entity\EntityManager
+   */
+  protected $manager;
+
   public static function getInfo() {
     return array(
       'name' => 'Comment actions',
@@ -27,22 +34,30 @@ public static function getInfo() {
     );
   }
 
+  function setUp() {
+    parent::setUp();
+
+    $this->manager = $this->container->get('plugin.manager.entity');
+  }
+
   /**
    * Tests comment publish and unpublish actions.
    */
-  function testCommentPublishUnpublishActions() {
+  public function testCommentPublishUnpublishActions() {
     $this->drupalLogin($this->web_user);
     $comment_text = $this->randomName();
     $subject = $this->randomName();
     $comment = $this->postComment($this->node, $comment_text, $subject);
 
     // Unpublish a comment.
-    $action = entity_load('action', 'comment_unpublish_action');
+    $actions = $this->manager->getStorageController('action')->load(array('comment_unpublish_action'));
+    $action = reset($actions);
     $action->execute(array($comment));
     $this->assertEqual($comment->status->value, COMMENT_NOT_PUBLISHED, 'Comment was unpublished');
 
     // Publish a comment.
-    $action = entity_load('action', 'comment_publish_action');
+    $actions = $this->manager->getStorageController('action')->load(array('comment_publish_action'));
+    $action = reset($actions);
     $action->execute(array($comment));
     $this->assertEqual($comment->status->value, COMMENT_PUBLISHED, 'Comment was published');
   }
@@ -50,11 +65,11 @@ function testCommentPublishUnpublishActions() {
   /**
    * Tests the unpublish comment by keyword action.
    */
-  function testCommentUnpublishByKeyword() {
+  public function testCommentUnpublishByKeyword() {
     $this->drupalLogin($this->admin_user);
     $keyword_1 = $this->randomName();
     $keyword_2 = $this->randomName();
-    $action = entity_create('action', array(
+    $action = $this->manager->getStorageController('action')->create(array(
       'id' => 'comment_unpublish_by_keyword_action',
       'label' => $this->randomName(),
       'type' => 'comment',
@@ -68,7 +83,7 @@ function testCommentUnpublishByKeyword() {
     $comment = $this->postComment($this->node, $keyword_2, $this->randomName());
 
     // Load the full comment so that status is available.
-    $comment = comment_load($comment->id());
+    $this->manager->getStorageController('comment')->load(array($comment->id()));
 
     $this->assertTrue($comment->status->value == COMMENT_PUBLISHED, 'The comment status was set to published.');
 
@@ -76,4 +91,23 @@ function testCommentUnpublishByKeyword() {
     $this->assertTrue($comment->status->value == COMMENT_NOT_PUBLISHED, 'The comment status was set to not published.');
   }
 
+  /**
+   * Tests comment delete action.
+   */
+  public function testCommentDeleteAction() {
+    $this->drupalLogin($this->admin_user);
+    $comment_text = $this->randomName();
+    $subject = $this->randomName();
+    $comment = $this->postComment($this->node, $comment_text, $subject);
+
+    // Delete a comment.
+    $actions = $this->manager->getStorageController('action')->load(array('comment_delete_action'));
+    $action = reset($actions);
+    $action->execute(array($comment));
+
+    // Try to load the comment again.
+    $comment = $this->manager->getStorageController('comment')->load(array($comment->id()));
+    $this->assertTrue(empty($comment), 'Comment was deleted');
+  }
+
 }
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/Views/CommentAdminView.php b/core/modules/comment/lib/Drupal/comment/Tests/Views/CommentAdminView.php
new file mode 100644
index 0000000..d4aa11c
--- /dev/null
+++ b/core/modules/comment/lib/Drupal/comment/Tests/Views/CommentAdminView.php
@@ -0,0 +1,145 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\comment\Tests\Views\CommentAdminView.
+ */
+
+namespace Drupal\comment\Tests\Views;
+
+use Drupal\views\Tests\ViewTestBase;
+use Drupal\views\ViewExecutable;
+use Drupal\Core\Language\Language;
+
+/**
+ * Tests the default comment admin screen provided by views.
+ */
+class CommentAdminView extends ViewTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('node', 'comment');
+
+  /**
+   * The entity storage controller for comments.
+   *
+   * @var \Drupal\comment\CommentStorageController
+   */
+  protected $commentStorageController;
+
+  /**
+   * Node to use as base for the comments of the test.
+   *
+   * @var \Drupal\node\NodeInterface
+   */
+  protected $node;
+
+
+  /**
+   * An array of comment ids.
+   *
+   * @var array
+   */
+  protected $comments;
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Comment: Admin view',
+      'description' => 'Tests the default comment admin screen provided by views.',
+      'group' => 'Views module integration',
+    );
+  }
+
+  protected function setUp() {
+    parent::setUp();
+
+    $this->commentStorageController = $this->container->get('plugin.manager.entity')->getStorageController('comment');
+
+    // Create a node.
+    $this->node = $this->drupalCreateNode();
+  }
+
+  /**
+   * Add comments to the node.
+   */
+  protected function createComments() {
+    $this->comments = array();
+    for ($i = 0; $i < 20; $i++) {
+      $status = ($i % 2 == 0) ? FALSE : TRUE;
+      $comment = $this->commentStorageController->create(array(
+        'nid' => $this->node->nid,
+        'node_type' => 'node_type_' . $this->node->bundle(),
+        'uid' => $this->node->uid,
+        'status' => $status,
+        'subject' => $this->randomName(),
+        'language' => Language::LANGCODE_NOT_SPECIFIED,
+        'comment_body' => array(Language::LANGCODE_NOT_SPECIFIED => array($this->randomName())),
+        'created' => REQUEST_TIME - $i,
+      ));
+      $comment->save();
+      $this->comments[$status][]['cid'] = $comment->id();
+    }
+  }
+
+  /**
+   * Tests the comment admin view.
+   */
+  public function testCommentAdminView() {
+    // Create comments.
+    $this->createComments();
+    $view = views_get_view('comments');
+    $view->setDisplay('page_1');
+    $this->executeView($view);
+    $view->preview();
+
+    $column_map = array('cid' => 'cid');
+
+    // Check if the view title is correct.
+    $this->assertEqual($view->getTitle(), 'Comments', 'Comment admin view title is correct.');
+
+    // Check the expected results for the approved comments display.
+    $this->assertIdenticalResultset($view, array_slice($this->comments[1], 0, 50), $column_map, 'Ensure that the approved comments are displayed on the published comments list.');
+    $this->assertNotInResultSet($view, $this->comments[0], 'cid', 'Ensure no unexpected comment is in the result.');
+    $view->destroy();
+
+    $view = views_get_view('comments');
+    $view->setDisplay('page_2');
+    $this->executeView($view);
+    $this->assertIdenticalResultset($view, array_slice($this->comments[0], 0, 50), $column_map, 'Ensure that the approved comments are displayed on the published comments list.');
+    $this->assertNotInResultSet($view, $this->comments[1], 'cid', 'Ensure no unexpected comment is in the result.');
+  }
+
+  /**
+   * Tests the comment admin screen fields.
+   */
+  public function testCommentAdminScreen() {
+    $user = $this->drupalCreateUser(array('administer comments'));
+    $this->drupalLogin($user);
+
+    // Visit the comment page.
+    $this->drupalGet('admin/content/comment');
+    $this->assertResponse(200);
+    $this->assertText('No comments available.', 'Empty text is displayed when there are no comments');
+
+    // Re visit when the comments are created.
+    $this->createComments();
+    $this->drupalGet('admin/content/comment');
+    // Check that the title and the links are present.
+    $this->assertTitle('Comments | Drupal');
+    $this->assertLink('Published comments');
+    $this->assertLink('Unapproved comments');
+
+    // Check for the fields and default links of the view.
+    $this->assertFieldByXPath('//td[contains(@class, "views-field-subject")]', NULL, 'Subject field is displayed');
+    $this->assertFieldByXPath('//td[contains(@class, "views-field-name")]', NULL, 'Comment author field is displayed');
+    $this->assertFieldByXPath('//td[contains(@class, "views-field-title")]', NULL, 'Node title field is displayed');
+    $this->assertFieldByXPath('//td[contains(@class, "views-field-changed")]', NULL, 'Updated field is displayed');
+    $this->assertFieldByXPath('//td[contains(@class, "views-field-dropbutton")]', NULL, 'Dropbutton is displayed');
+    $this->assertFieldByXPath('//ul[@class="dropbutton"]/li[contains(@class, "edit-comment")]/a', 'Edit', 'Edit link is displayed');
+    $this->assertFieldByXPath('//ul[@class="dropbutton"]/li[contains(@class, "delete-comment")]/a', 'Delete', 'Delete link is displayed');
+  }
+
+}
diff --git a/core/modules/node/lib/Drupal/node/Tests/Views/FrontpageTest.php b/core/modules/node/lib/Drupal/node/Tests/Views/FrontpageTest.php
index f638dbe..5e3a1ce 100644
--- a/core/modules/node/lib/Drupal/node/Tests/Views/FrontpageTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/Views/FrontpageTest.php
@@ -121,32 +121,15 @@ public function testFrontPage() {
     $view->setDisplay('page_1');
     $this->executeView($view);
     $this->assertIdenticalResultset($view, array_slice($expected, 0, 10), $column_map, 'Ensure that the right nodes are displayed on the frontpage.');
-    $this->assertNotInResultSet($view, $not_expected_nids, 'Ensure no unexpected node is in the result.');
+    $this->assertNotInResultSet($view, $not_expected_nids, 'nid', 'Ensure no unexpected node is in the result.');
     $view->destroy();
 
     $view->setDisplay('page_1');
     $view->setCurrentPage(1);
     $this->executeView($view);
     $this->assertIdenticalResultset($view, array_slice($expected, 10, 10), $column_map, 'Ensure that the right nodes are displayed on second page of the frontpage.');
-    $this->assertNotInResultSet($view, $not_expected_nids, 'Ensure no unexpected node is in the result.');
+    $this->assertNotInResultSet($view, $not_expected_nids, 'nid', 'Ensure no unexpected node is in the result.');
     $view->destroy();
   }
 
-  /**
-   * Verifies that an amount of nids aren't in the result.
-   *
-   * @param \Drupal\views\ViewExecutable $view
-   *   An executed View.
-   * @param array $not_expected_nids
-   *   An array of nids which should not be part of the resultset.
-   * @param string $message
-   *   (optional) A custom message to display with the assertion.
-   */
-  protected function assertNotInResultSet(ViewExecutable $view, array $not_expected_nids, $message = '') {
-    $found_nids = array_filter($view->result, function ($row) use ($not_expected_nids) {
-      return in_array($row->nid, $not_expected_nids);
-    });
-    $this->assertFalse($found_nids, $message);
-  }
-
 }
diff --git a/core/modules/views/lib/Drupal/views/Tests/DefaultViewsTest.php b/core/modules/views/lib/Drupal/views/Tests/DefaultViewsTest.php
index cdbff1a..d797f3e 100644
--- a/core/modules/views/lib/Drupal/views/Tests/DefaultViewsTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/DefaultViewsTest.php
@@ -10,6 +10,7 @@
 use Drupal\Core\Language\Language;
 use Drupal\simpletest\WebTestBase;
 use Drupal\views\ViewExecutable;
+use Drupal\Component\Utility\Unicode;
 
 /**
  * Tests for views default views.
@@ -24,6 +25,13 @@ class DefaultViewsTest extends ViewTestBase {
   public static $modules = array('views', 'node', 'search', 'comment', 'taxonomy', 'block');
 
   /**
+   * The vocabulary used for creating terms.
+   *
+   * @var \Drupal\taxonomy\VocabularyInterface
+   */
+  protected $vocabulary;
+
+  /**
    * An array of argument arrays to use for default views.
    *
    * @var array
@@ -51,7 +59,7 @@ protected function setUp() {
     $this->vocabulary = entity_create('taxonomy_vocabulary', array(
       'name' => $this->randomName(),
       'description' => $this->randomName(),
-      'vid' => drupal_strtolower($this->randomName()),
+      'vid' => Unicode::strtolower($this->randomName()),
       'langcode' => Language::LANGCODE_NOT_SPECIFIED,
       'help' => '',
       'nodes' => array('page' => 'page'),
@@ -60,9 +68,9 @@ protected function setUp() {
     $this->vocabulary->save();
 
     // Setup a field and instance.
-    $this->field_name = drupal_strtolower($this->randomName());
+    $field_name = Unicode::strtolower($this->randomName());
     entity_create('field_entity', array(
-      'field_name' => $this->field_name,
+      'field_name' => $field_name,
       'type' => 'taxonomy_term_reference',
       'settings' => array(
         'allowed_values' => array(
@@ -74,7 +82,7 @@ protected function setUp() {
       )
     ))->save();
     entity_create('field_instance', array(
-      'field_name' => $this->field_name,
+      'field_name' => $field_name,
       'entity_type' => 'node',
       'bundle' => 'page',
     ))->save();
@@ -84,10 +92,10 @@ protected function setUp() {
 
     for ($i = 0; $i <= 10; $i++) {
       $user = $this->drupalCreateUser();
-      $term = $this->createTerm($this->vocabulary);
+      $term = $this->createTerm();
 
       $values = array('created' => $time, 'type' => 'page');
-      $values[$this->field_name][]['target_id'] = $term->id();
+      $values[$field_name][]['target_id'] = $term->id();
 
       // Make every other node promoted.
       if ($i % 2) {
@@ -105,10 +113,40 @@ protected function setUp() {
         'node_type' => 'node_type_' . $node->bundle(),
       );
       entity_create('comment', $comment)->save();
+
+      $comment = array(
+        'uid' => $user->uid,
+        'nid' => $node->nid,
+        'node_type' => 'node_type_' . $node->bundle(),
+        'status' => 0,
+      );
+      entity_create('comment', $comment)->save();
+
     }
   }
 
   /**
+   * Returns a new term with random properties in vocabulary $vid.
+   *
+   * @return \Drupal\taxonomy\TermInterface
+   *   Taxonomy term created.
+   */
+  function createTerm() {
+    $filter_formats = filter_formats();
+    $format = array_pop($filter_formats);
+    $term = entity_create('taxonomy_term', array(
+      'name' => $this->randomName(),
+      'description' => $this->randomName(),
+      // Use the first available text format.
+      'format' => $format->format,
+      'vid' => $this->vocabulary->id(),
+      'langcode' => Language::LANGCODE_NOT_SPECIFIED,
+    ));
+    $term->save();
+    return $term;
+  }
+
+  /**
    * Test that all Default views work as expected.
    */
   public function testDefaultViews() {
@@ -141,24 +179,6 @@ public function testDefaultViews() {
   }
 
   /**
-   * Returns a new term with random properties in vocabulary $vid.
-   */
-  function createTerm($vocabulary) {
-    $filter_formats = filter_formats();
-    $format = array_pop($filter_formats);
-    $term = entity_create('taxonomy_term', array(
-      'name' => $this->randomName(),
-      'description' => $this->randomName(),
-      // Use the first available text format.
-      'format' => $format->format,
-      'vid' => $vocabulary->id(),
-      'langcode' => Language::LANGCODE_NOT_SPECIFIED,
-    ));
-    $term->save();
-    return $term;
-  }
-
-  /**
    * Tests the archive view.
    */
   public function testArchiveView() {
diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewTestBase.php b/core/modules/views/lib/Drupal/views/Tests/ViewTestBase.php
index 5a00bd7..8feccf0 100644
--- a/core/modules/views/lib/Drupal/views/Tests/ViewTestBase.php
+++ b/core/modules/views/lib/Drupal/views/Tests/ViewTestBase.php
@@ -116,6 +116,25 @@ protected function assertNotIdenticalResultset($view, $expected_result, $column_
   }
 
   /**
+   * Verifies that a set of elements aren't in the result.
+   *
+   * @param \Drupal\views\ViewExecutable $view
+   *   An executed View.
+   * @param array $not_expected_elements
+   *   An array of elements which should not be part of the resultset.
+   * @param string $column
+   *  Name of the columnt to check the values.
+   * @param string $message
+   *   (optional) A custom message to display with the assertion.
+   */
+  protected function assertNotInResultSet(ViewExecutable $view, array $not_expected_elements, $column, $message = '') {
+    $found_elements = array_filter($view->result, function ($row) use ($not_expected_elements, $column) {
+      return in_array($row->{$column}, $not_expected_elements);
+    });
+    $this->assertFalse($found_elements, $message);
+  }
+
+  /**
    * Performs View result assertions.
    *
    * This is a helper method for ViewTestBase::assertIdenticalResultset() and
