Skip to content

Commit

Permalink
Issue #2989745 by plach, jungle, alexpott, Lendude, catch, tim.plunke…
Browse files Browse the repository at this point in the history
…tt: views_update_8500() inlines configuration changes instead of this being done on config save for bc
  • Loading branch information
catch committed Apr 6, 2020
1 parent bf41bfc commit 558a1e8
Show file tree
Hide file tree
Showing 9 changed files with 806 additions and 238 deletions.
415 changes: 415 additions & 0 deletions modules/views/src/ViewsConfigUpdater.php

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
uuid: 001475a0-daec-4e8a-8ca7-97b0d24100a6
langcode: en
status: true
dependencies:
module:
- user
id: test_user_multi_value
label: test_user_multi_value
module: views
description: ''
tag: ''
base_table: users_field_data
base_field: uid
core: 8.x
display:
default:
display_plugin: default
id: default
display_title: Master
position: 0
display_options:
access:
type: perm
options:
perm: 'access user profiles'
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: Filter
reset_button: false
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
pager:
type: mini
options:
items_per_page: 10
offset: 0
id: 0
total_pages: null
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
tags:
previous: ‹‹
next: ››
style:
type: default
options:
grouping: { }
row_class: ''
default_row_class: true
uses_fields: false
row:
type: fields
options:
inline: { }
separator: ''
hide_empty: false
default_field_elements: true
fields:
roles:
id: roles
table: user__roles
field: roles
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
click_sort_column: target_id
type: entity_reference_label
settings:
link: true
group_column: target_id
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
entity_type: user
entity_field: roles
plugin_id: field
filters:
roles:
id: roles
table: user__roles
field: roles
relationship: none
group_type: group
admin_label: ''
operator: '='
value: ''
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
entity_type: user
entity_field: roles
plugin_id: string
sorts: { }
header: { }
footer: { }
empty: { }
relationships: { }
arguments:
roles:
id: roles
table: user__roles
field: roles
relationship: none
group_type: group
admin_label: ''
default_action: ignore
exception:
value: all
title_enable: false
title: All
title_enable: false
title: ''
default_argument_type: fixed
default_argument_options:
argument: ''
default_argument_skip_url: false
summary_options:
base_path: ''
count: true
items_per_page: 25
override: false
summary:
sort_order: asc
number_of_records: 0
format: default_summary
specify_validation: false
validate:
type: none
fail: 'not found'
validate_options: { }
glossary: false
limit: 0
case: none
path_case: none
transform_dash: false
break_phrase: false
entity_type: user
entity_field: roles
plugin_id: string
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user.permissions
tags: { }
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
/**
* Tests that the additional settings are added to the entity link field.
*
* @coversDefaultClass \Drupal\views\ViewsConfigUpdater
*
* @see views_post_update_entity_link_url()
*
* @group legacy
Expand All @@ -26,6 +28,8 @@ protected function setDatabaseDumpFiles() {

/**
* Tests that the additional settings are added to the config.
*
* @covers ::needsEntityLinkUrlUpdate
*/
public function testViewsPostUpdateEntityLinkUrl() {
$this->runUpdates();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
/**
* Tests the upgrade path for views multi-value base field data.
*
* @see views_update_8500()
* @coversDefaultClass \Drupal\views\ViewsConfigUpdater
*
* @see views_post_update_field_names_for_multivalue_fields()
*
* @group legacy
*/
Expand All @@ -26,6 +28,8 @@ protected function setDatabaseDumpFiles() {

/**
* Tests multi-value base field views data is updated correctly.
*
* @covers ::needsMultivalueBaseFieldUpdate
*/
public function testUpdateMultiValueBaseFields() {
$this->runUpdates();
Expand All @@ -48,6 +52,14 @@ public function testUpdateMultiValueBaseFields() {

// The plugin ID should be updated as well.
$this->assertEqual($type === 'arguments' ? 'user__roles_rid' : 'user_roles', $handler_config['plugin_id']);

if ($type === 'filters') {
// The filter value should have been converted to an array.
$this->assertTrue(is_array($handler_config['value']));

// The filter operator should have been mapped from single to multiple.
$this->assertEquals('or', $handler_config['operator']);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
/**
* Tests the upgrade path for limit operators feature.
*
* @coversDefaultClass \Drupal\views\ViewsConfigUpdater
*
* @see views_post_update_limit_operator_defaults()
*
* @group Update
Expand All @@ -27,6 +29,8 @@ protected function setDatabaseDumpFiles() {

/**
* Tests that default settings for limit operators are present.
*
* @covers ::needsOperatorDefaultsUpdate
*/
public function testViewsPostUpdateLimitOperatorsDefaultValues() {
// Load and initialize our test view.
Expand Down

0 comments on commit 558a1e8

Please sign in to comment.