diff --git a/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php b/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php index b2a6f5c..e58c6a4 100644 --- a/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php +++ b/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php @@ -98,6 +98,27 @@ public function testRenderers() { } } + $view = Views::getView('test_entity_row_renderers'); + + // Assert language renderers with a display using entity rows. + $this->checkLanguageRenderers($view, $values); + + // Assert language renderers with a display using field rows. + $view->setDisplay('page_2'); + $this->checkLanguageRenderers($view, $values); + } + + /** + * Checks that the language renderer configurations work as expected. + * + * @param \Drupal\views\ViewExecutable $view + * A view executable object. + * @param array $values + * An array of node information which are each an array of node titles + * associated with language keys appropriate for the translation of that + * node. + */ + protected function checkLanguageRenderers($view, $values) { $expected = array( $values[0]['en'], $values[0]['en'], @@ -109,7 +130,7 @@ public function testRenderers() { $values[2]['en'], $values[2]['en'], ); - $this->assertTranslations('***LANGUAGE_language_content***', $expected, 'The current language renderer behaves as expected.'); + $this->assertTranslations($view, '***LANGUAGE_language_content***', $expected, 'The current language renderer behaves as expected.'); $expected = array( $values[0]['en'], @@ -122,7 +143,7 @@ public function testRenderers() { $values[2]['l1'], $values[2]['l1'], ); - $this->assertTranslations('***LANGUAGE_entity_default***', $expected, 'The default language renderer behaves as expected.'); + $this->assertTranslations($view, '***LANGUAGE_entity_default***', $expected, 'The default language renderer behaves as expected.'); $expected = array( $values[0]['en'], @@ -135,7 +156,7 @@ public function testRenderers() { $values[2]['l0'], $values[2]['l1'], ); - $this->assertTranslations('***LANGUAGE_entity_translation***', $expected, 'The translation language renderer behaves as expected.'); + $this->assertTranslations($view, '***LANGUAGE_entity_translation***', $expected, 'The translation language renderer behaves as expected.'); $expected = array( $values[0][$this->langcodes[0]], @@ -148,7 +169,7 @@ public function testRenderers() { $values[2][$this->langcodes[0]], $values[2][$this->langcodes[0]], ); - $this->assertTranslations('***LANGUAGE_site_default***', $expected, 'The site default language renderer behaves as expected.'); + $this->assertTranslations($view, '***LANGUAGE_site_default***', $expected, 'The site default language renderer behaves as expected.'); $expected = array( $values[0]['l0'], @@ -161,12 +182,14 @@ public function testRenderers() { $values[2]['l0'], $values[2]['l0'], ); - $this->assertTranslations('l0', $expected, 'The language specific renderer behaves as expected.'); + $this->assertTranslations($view, 'l0', $expected, 'The language specific renderer behaves as expected.'); } /** * Checks that the view results match the expected values. * + * @param \Drupal\views\ViewExecutable $view + * A view executable object. * @param string $renderer_id * The id of the renderer to be tested. * @param array $expected @@ -179,8 +202,8 @@ public function testRenderers() { * @return bool * TRUE if the assertion succeeded, FALSE otherwise. */ - protected function assertTranslations($renderer_id, array $expected, $message = '', $group = 'Other') { - $view = Views::getView('test_entity_row_renderers'); + protected function assertTranslations($view, $renderer_id, array $expected, $message = '', $group = 'Other') { + $view = clone $view; $view->getDisplay()->setOption('rendering_language', $renderer_id); $view->preview(); diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row_renderers.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row_renderers.yml index 84a7f62..48d1204 100644 --- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row_renderers.yml +++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row_renderers.yml @@ -1,6 +1,8 @@ langcode: und status: true dependencies: + config: + - core.entity_view_mode.node.teaser module: - node id: test_entity_row_renderers @@ -40,3 +42,140 @@ display: entity_type: node entity_field: title rendering_language: '***LANGUAGE_entity_translation***' + display_extenders: { } + fields: + title: + id: title + table: node_field_data + field: title + 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: '' + 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 + entity_type: node + entity_field: title + plugin_id: field + type: string + langcode: + id: langcode + table: node_field_data + field: langcode + 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: '' + 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 + entity_type: node + entity_field: langcode + plugin_id: field + type: language + page_1: + display_plugin: page + id: page_1 + display_title: Page + position: 1 + display_options: + display_extenders: { } + rendering_language: '***LANGUAGE_entity_translation***' + path: test_entity_row_renderers/entities + page_2: + display_plugin: page + id: page_2 + display_title: 'Page 2' + position: 2 + display_options: + display_extenders: { } + rendering_language: '***LANGUAGE_entity_translation***' + path: test_entity_row_renderers/fields + style: + type: default + options: { } + defaults: + style: false + row: false + row: + type: fields + options: + default_field_elements: true + inline: { } + separator: '' + hide_empty: false