From f4ede890a9e81de3e24c565f7cb5202ecd48a70f Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Tue, 2 Apr 2019 09:21:35 +0100
Subject: [PATCH] Issue #3041765 by claudiu.cristea: Convert FieldGroupRowsTest
 into a Kernel test

(cherry picked from commit 97f5efc2f1cdfd9548f8e414cb41b1f1dbc9ef7a)
---
 .../Functional/Handler/FieldGroupRowsTest.php | 112 ------------------
 .../src/Kernel/Handler/FieldGroupRowsTest.php | 102 ++++++++++++++++
 2 files changed, 102 insertions(+), 112 deletions(-)
 delete mode 100644 core/modules/views/tests/src/Functional/Handler/FieldGroupRowsTest.php
 create mode 100644 core/modules/views/tests/src/Kernel/Handler/FieldGroupRowsTest.php

diff --git a/core/modules/views/tests/src/Functional/Handler/FieldGroupRowsTest.php b/core/modules/views/tests/src/Functional/Handler/FieldGroupRowsTest.php
deleted file mode 100644
index d38ba41792ba..000000000000
--- a/core/modules/views/tests/src/Functional/Handler/FieldGroupRowsTest.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-namespace Drupal\Tests\views\Functional\Handler;
-
-use Drupal\Core\Field\FieldStorageDefinitionInterface;
-use Drupal\Core\Render\RenderContext;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\Tests\views\Functional\ViewTestBase;
-use Drupal\views\Views;
-use Drupal\field\Entity\FieldStorageConfig;
-
-/**
- * Tests the "Display all values in the same row" setting.
- *
- * @see \Drupal\views\Plugin\views\field\EntityField
- *
- * @group views
- */
-class FieldGroupRowsTest extends ViewTestBase {
-
-  /**
-   * Views used by this test.
-   *
-   * @var array
-   */
-  public static $testViews = ['test_group_rows', 'test_ungroup_rows'];
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = ['node', 'field_test'];
-
-  /**
-   * Field that will be created to test the group/ungroup rows functionality
-   *
-   * @var string
-   */
-  private $fieldName = 'field_group_rows';
-
-  protected function setUp($import_test_views = TRUE) {
-    parent::setUp($import_test_views);
-
-    // Create content type with unlimited text field.
-    $node_type = $this->drupalCreateContentType(['type' => 'page', 'name' => 'Basic page']);
-
-    // Create the unlimited text field.
-    $field_storage = FieldStorageConfig::create([
-        'field_name' => $this->fieldName,
-        'entity_type' => 'node',
-        'type' => 'text',
-        'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
-      ]);
-    $field_storage->save();
-
-    // Create an instance of the text field on the content type.
-    $field = [
-      'field_storage' => $field_storage,
-      'bundle' => $node_type->id(),
-    ];
-    FieldConfig::create($field)->save();
-  }
-
-  /**
-   * Testing the "Grouped rows" functionality.
-   */
-  public function testGroupRows() {
-    /** @var \Drupal\Core\Render\RendererInterface $renderer */
-    $renderer = \Drupal::service('renderer');
-
-    $edit = [
-      'title' => $this->randomMachineName(),
-      $this->fieldName => ['a', 'b', 'c'],
-    ];
-    $this->drupalCreateNode($edit);
-
-    $view = Views::getView('test_group_rows');
-
-    // Test grouped rows.
-    $this->executeView($view);
-    $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
-      return $view->field[$this->fieldName]->advancedRender($view->result[0]);
-    });
-    $this->assertEqual($output, 'a, b, c');
-
-    // Change the group_rows checkbox to false.
-    $view = Views::getView('test_group_rows');
-    $view->setHandlerOption('default', 'field', $this->fieldName, 'group_rows', FALSE);
-
-    // Test ungrouped rows.
-    $this->executeView($view);
-    $view->render();
-
-    $view->row_index = 0;
-    $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
-      return $view->field[$this->fieldName]->advancedRender($view->result[0]);
-    });
-    $this->assertEqual($output, 'a');
-    $view->row_index = 1;
-    $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
-      return $view->field[$this->fieldName]->advancedRender($view->result[1]);
-    });
-    $this->assertEqual($output, 'b');
-    $view->row_index = 2;
-    $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
-      return $view->field[$this->fieldName]->advancedRender($view->result[2]);
-    });
-    $this->assertEqual($output, 'c');
-  }
-
-}
diff --git a/core/modules/views/tests/src/Kernel/Handler/FieldGroupRowsTest.php b/core/modules/views/tests/src/Kernel/Handler/FieldGroupRowsTest.php
new file mode 100644
index 000000000000..ade02556e005
--- /dev/null
+++ b/core/modules/views/tests/src/Kernel/Handler/FieldGroupRowsTest.php
@@ -0,0 +1,102 @@
+<?php
+
+namespace Drupal\Tests\views\Kernel\Handler;
+
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
+use Drupal\Core\Render\RenderContext;
+use Drupal\field\Entity\FieldConfig;
+use Drupal\node\Entity\Node;
+use Drupal\node\Entity\NodeType;
+use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
+use Drupal\views\Views;
+use Drupal\field\Entity\FieldStorageConfig;
+
+/**
+ * Tests the "Display all values in the same row" setting.
+ *
+ * @see \Drupal\views\Plugin\views\field\EntityField
+ *
+ * @group views
+ */
+class FieldGroupRowsTest extends ViewsKernelTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = [
+    'field',
+    'filter',
+    'node',
+    'text',
+    'user',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $testViews = ['test_group_rows', 'test_ungroup_rows'];
+
+  /**
+   * Testing the "Grouped rows" functionality.
+   */
+  public function testGroupRows() {
+    $this->installConfig(['filter']);
+    $this->installEntitySchema('node');
+    $this->installEntitySchema('user');
+    NodeType::create(['type' => 'page'])->save();
+
+    // Create a text with unlimited cardinality.
+    FieldStorageConfig::create([
+      'type' => 'text',
+      'entity_type' => 'node',
+      'field_name' => 'field_group_rows',
+      'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
+    ])->save();
+    FieldConfig::create([
+      'entity_type' => 'node',
+      'bundle' => 'page',
+      'field_name' => 'field_group_rows',
+    ])->save();
+
+    Node::create([
+      'type' => 'page',
+      'title' => $this->randomMachineName(),
+      'field_group_rows' => ['a', 'b', 'c'],
+    ])->save();
+
+    $renderer = $this->container->get('renderer');
+    $view = Views::getView('test_group_rows');
+
+    // Test grouped rows.
+    $this->executeView($view);
+    $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
+      return $view->field['field_group_rows']->advancedRender($view->result[0]);
+    });
+    $this->assertEquals('a, b, c', $output);
+
+    // Change the group_rows checkbox to false.
+    $view = Views::getView('test_group_rows');
+    $view->setHandlerOption('default', 'field', 'field_group_rows', 'group_rows', FALSE);
+
+    // Test ungrouped rows.
+    $this->executeView($view);
+    $view->render();
+
+    $view->row_index = 0;
+    $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
+      return $view->field['field_group_rows']->advancedRender($view->result[0]);
+    });
+    $this->assertEquals('a', $output);
+    $view->row_index = 1;
+    $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
+      return $view->field['field_group_rows']->advancedRender($view->result[1]);
+    });
+    $this->assertEquals('b', $output);
+    $view->row_index = 2;
+    $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
+      return $view->field['field_group_rows']->advancedRender($view->result[2]);
+    });
+    $this->assertEquals('c', $output);
+  }
+
+}
-- 
GitLab