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