diff --git a/config/optional/views.view.automatic_updates_log.yml b/config/optional/views.view.automatic_updates_log.yml new file mode 100644 index 0000000000000000000000000000000000000000..397ff7e64dc968156dd01c9c775fd522303fa522 --- /dev/null +++ b/config/optional/views.view.automatic_updates_log.yml @@ -0,0 +1,334 @@ +langcode: en +status: true +dependencies: + config: + - system.menu.admin + module: + - dblog + - user +id: automatic_updates_log +label: 'Automatic updates log' +module: views +description: 'Lists the files which have been updated by the Automatic updates module.' +tag: '' +base_table: watchdog +base_field: wid +core: 8.x +display: + default: + display_plugin: default + id: default + display_title: Master + position: 0 + display_options: + access: + type: perm + options: + perm: 'administer software updates' + cache: + type: tag + options: { } + query: + type: views_query + options: + disable_sql_rewrite: false + distinct: false + replica: false + query_comment: '' + query_tags: { } + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: true + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: false + sort_asc_label: Asc + sort_desc_label: Desc + pager: + type: full + options: + items_per_page: 100 + offset: 0 + id: 0 + total_pages: null + tags: + previous: ‹‹ + next: ›› + first: '« First' + last: 'Last »' + expose: + items_per_page: true + items_per_page_label: 'Items per page' + items_per_page_options: '100, 250, 500, 1000' + items_per_page_options_all: true + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + quantity: 9 + style: + type: default + options: + grouping: + - + field: timestamp + rendered: true + rendered_strip: false + row_class: '' + default_row_class: false + row: + type: fields + options: + default_field_elements: false + inline: { } + separator: '' + hide_empty: false + fields: + timestamp: + id: timestamp + table: watchdog + field: timestamp + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: true + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + date_format: short + custom_date_format: '' + timezone: '' + plugin_id: date + message: + id: message + table: watchdog + field: message + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + replace_variables: true + plugin_id: dblog_message + filters: + type: + id: type + table: watchdog + field: type + relationship: none + group_type: group + admin_label: '' + operator: in + value: + automatic_updates: automatic_updates + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + plugin_id: dblog_types + severity: + id: severity + table: watchdog + field: severity + relationship: none + group_type: group + admin_label: '' + operator: in + value: + 6: '6' + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + plugin_id: in_operator + sorts: + wid: + id: wid + table: watchdog + field: wid + relationship: none + group_type: group + admin_label: '' + order: DESC + exposed: false + expose: + label: '' + plugin_id: standard + title: 'Automatic updates log' + header: { } + footer: { } + empty: + area: + id: area + table: views + field: area + relationship: none + group_type: group + admin_label: '' + empty: true + tokenize: false + content: + value: '<p>No automatic update log entries.</p>' + format: basic_html + plugin_id: text + relationships: { } + arguments: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_interface' + - url.query_args + - user.permissions + tags: { } + page_1: + display_plugin: page + id: page_1 + display_title: Page + position: 1 + display_options: + display_extenders: { } + path: admin/reports/automatic_updates_log + menu: + type: normal + title: 'Automatic updates log' + description: '' + expanded: false + parent: system.admin_reports + weight: -10 + context: '0' + menu_name: admin + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_interface' + - url.query_args + - user.permissions + tags: { } diff --git a/tests/src/Functional/LogPageTest.php b/tests/src/Functional/LogPageTest.php new file mode 100644 index 0000000000000000000000000000000000000000..532c579f5a7e035c6dabdde0ef7bc50e1540c885 --- /dev/null +++ b/tests/src/Functional/LogPageTest.php @@ -0,0 +1,52 @@ +<?php + +namespace Drupal\Tests\automatic_updates\Functional; + +use Drupal\Tests\BrowserTestBase; + +/** + * Tests access permission to log page. + * + * @group automatic_updates + */ +class LogPageTest extends BrowserTestBase { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'views', + 'dblog', + 'automatic_updates', + ]; + + /** + * A user with permission to administer software updates. + * + * @var \Drupal\user\UserInterface + */ + protected $user; + + /** + * {@inheritdoc} + */ + protected function setUp() { + parent::setUp(); + $this->user = $this->drupalCreateUser([ + 'access administration pages', + 'administer site configuration', + 'administer software updates', + ]); + $this->drupalLogin($this->user); + } + + /** + * Tests that the log page is displayed. + */ + public function testLogPageExists() { + $this->drupalGet('admin/reports/automatic_updates_log'); + + $this->assertSession()->statusCodeEquals(200); + } + +}