From 50857cc18029e7f8cd686ab5356559ff0ee3217a Mon Sep 17 00:00:00 2001 From: Borg Date: Tue, 31 Oct 2023 14:45:07 +0200 Subject: [PATCH] Drupal 10 compatibility --- src/Tests/ViewFieldTest.php | 32 ++++++++++--------- .../viewfield-formatter-default.html.twig | 4 +-- viewfield.info.yml | 2 +- viewfield.module | 10 +++--- 4 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/Tests/ViewFieldTest.php b/src/Tests/ViewFieldTest.php index 2b0f4a3..3efe1f9 100644 --- a/src/Tests/ViewFieldTest.php +++ b/src/Tests/ViewFieldTest.php @@ -42,7 +42,10 @@ class ViewFieldTest extends BrowserTestBase { */ protected $field; - protected function setUp() { + /** + * {@inheritdoc} + */ + protected function setUp(): void { parent::setUp(); // Create Basic page and Article node types. @@ -99,17 +102,16 @@ protected function assertNodeCreated($field_name) { // Display article creation form. $this->drupalGet('node/add/article'); $view_select_name = "{$field_name}[0][vname]"; - $this->assertFieldByName($view_select_name, NULL,'Views select list is displayed.'); - $this->assertFieldByName("{$field_name}[0][vargs]", '' , - 'Views arguments text field is displayed'); + $this->assertSession()->fieldValueNotEquals($view_select_name, NULL); + $this->assertSession()->fieldValueNotEquals("{$field_name}[0][vargs]", ''); $edit = array ( "title[0][value]" => 'Test', $view_select_name => 'user_admin_people|default', ); // create article with viewfield - $this->drupalPostForm(NULL, $edit, t('Save and publish')); - $this->assertText(t('Article Test has been created.')); + $this->submitForm($edit, t('Save and publish')); + $this->assertSession()->pageTextContains(t('Article Test has been created.')); } /** @@ -126,7 +128,7 @@ protected function assertViewDisplays($field_name) { "title[0][value]" => 'Test1', $view_select_name => 'user_admin_people|default', ); - $this->drupalPostForm(NULL, $edit, t('Save and publish')); + $this->submitForm($edit, t('Save and publish')); // test that the view displays on the node $elements = $this->xpath("//div[contains(@class,:class) and contains(@class,:class1)]", @@ -145,12 +147,12 @@ protected function assertViewDisplays($field_name) { protected function assertDefaultViewRequired($field_name) { $this->drupalGet("admin/structure/types/manage/article/fields/node.article.{$field_name}"); $default_chk_name = 'field[settings][force_default]'; - $this->assertFieldByName($default_chk_name, NULL,'Default value checkbox displayed'); + $this->assertSession()->fieldValueNotEquals($default_chk_name, NULL); $edit = array ( $default_chk_name => TRUE, ); - $this->drupalPostForm(NULL, $edit, t('Save settings')); - $this->assertText('Always use default value requires a default value'); + $this->submitForm($edit, t('Save settings')); + $this->assertSession()->pageTextContains('Always use default value requires a default value'); } /** @@ -162,25 +164,25 @@ protected function assertDefaultViewRequired($field_name) { protected function assertDefaultViewSelected($field_name) { $this->drupalGet("admin/structure/types/manage/article/fields/node.article.{$field_name}"); $default_view_select_name = "default_value_input[{$field_name}][0][vname]"; - $this->assertFieldByName($default_view_select_name, NULL,'Default view select list is displayed'); + $this->assertSession()->fieldValueNotEquals($default_view_select_name, NULL); $edit = array ( $default_view_select_name => 'user_admin_people|default', ); - $this->drupalPostForm(NULL, $edit, t('Save settings')); - $this->assertText("Saved {$field_name} configuration"); + $this->submitForm($edit, t('Save settings')); + $this->assertSession()->pageTextContains("Saved {$field_name} configuration"); // check that the view is preselected on the node form $this->drupalGet('node/add/article'); $view_select_name = "{$field_name}[0][vname]"; - $this->assertFieldByName($view_select_name, 'user_admin_people|default','Views select list is displayed with correct value'); + $this->assertSession()->fieldValueNotEquals($view_select_name, 'user_admin_people|default'); // return the default value to its original state $this->drupalGet("admin/structure/types/manage/article/fields/node.article.{$field_name}"); $edit = array ( $default_view_select_name => '0', ); - $this->drupalPostForm(NULL, $edit, t('Save settings')); + $this->submitForm($edit, t('Save settings')); } } diff --git a/templates/viewfield-formatter-default.html.twig b/templates/viewfield-formatter-default.html.twig index 15fd2a9..809937f 100644 --- a/templates/viewfield-formatter-default.html.twig +++ b/templates/viewfield-formatter-default.html.twig @@ -11,10 +11,10 @@ * @ingroup themeable */ #} -{% spaceless %} +{% apply spaceless %}
{% if output %}
{{ output }}
{% endif %}
-{% endspaceless %} +{% endapply %} diff --git a/viewfield.info.yml b/viewfield.info.yml index 4006316..bed2a19 100644 --- a/viewfield.info.yml +++ b/viewfield.info.yml @@ -3,7 +3,7 @@ type: module description: 'Defines a field type to display a view.' version: VERSION core: 8.x -core_version_requirement: ^8 || ^9 +core_version_requirement: ^8 || ^9 || ^10 dependencies: - views - field diff --git a/viewfield.module b/viewfield.module index ea08bf5..9c8f8d1 100644 --- a/viewfield.module +++ b/viewfield.module @@ -26,7 +26,7 @@ function viewfield_preprocess_viewfield_formatter_default(&$variables) { $element['#view']->setExposedInput($element['#exposed_settings']); $args = !empty($element['#view_arguments']) ? array($element['#view_arguments']) : array(); $view_el = $element['#view']->preview($element['#view_display'], $args); - $output = render($view_el); + $output = \Drupal::service('renderer')->render($view_el); $variables['output'] = $output; } @@ -34,11 +34,11 @@ function viewfield_preprocess_viewfield_formatter_default(&$variables) { * Implements hook_element_info(). */ function viewfield_element_info() { - $types['viewfield'] = array( - '#pre_render' => array('viewfield_pre_render'), + $types['viewfield'] = [ + '#pre_render' => ['viewfield_pre_render'], '#theme' => 'viewfield_formatter_default', - '#post_render' => array('viewfield_post_render'), - ); + '#post_render' => ['viewfield_post_render'], + ]; return $types; }