diff --git a/core/modules/node/tests/src/Functional/Views/RowPluginTest.php b/core/modules/node/tests/src/Kernel/Views/RowPluginTest.php similarity index 60% rename from core/modules/node/tests/src/Functional/Views/RowPluginTest.php rename to core/modules/node/tests/src/Kernel/Views/RowPluginTest.php index 3aba69fa324ab4aca0974dbb2ea97f2f7898e2a4..4206fa9abf8bbd5985ebb78dda3a6a9986b0439d 100644 --- a/core/modules/node/tests/src/Functional/Views/RowPluginTest.php +++ b/core/modules/node/tests/src/Kernel/Views/RowPluginTest.php @@ -1,7 +1,12 @@ <?php -namespace Drupal\Tests\node\Functional\Views; +namespace Drupal\Tests\node\Kernel\Views; +use Drupal\node\Entity\NodeType; +use Drupal\Tests\node\Traits\NodeCreationTrait; +use Drupal\Tests\user\Traits\UserCreationTrait; +use Drupal\Tests\views\Kernel\ViewsKernelTestBase; +use Drupal\views\Tests\ViewTestData; use Drupal\views\Views; /** @@ -10,45 +15,61 @@ * @group node * @see \Drupal\node\Plugin\views\row\NodeRow */ -class RowPluginTest extends NodeTestBase { +class RowPluginTest extends ViewsKernelTestBase { + + use NodeCreationTrait; + use UserCreationTrait; /** - * Modules to enable. + * Views used by this test. * - * @var array + * @var string[] */ - protected static $modules = ['node']; + public static $testViews = ['test_node_row_plugin']; /** * {@inheritdoc} */ - protected $defaultTheme = 'stark'; - - /** - * Views used by this test. - * - * @var array - */ - public static $testViews = ['test_node_row_plugin']; + protected static $modules = [ + 'field', + 'filter', + 'node', + 'node_test_views', + 'text', + 'user', + ]; /** * Contains all nodes used by this test. * - * @var array + * @var \Drupal\node\Entity\Node[] */ - protected $nodes; + protected array $nodes; /** * {@inheritdoc} */ - protected function setUp($import_test_views = TRUE, $modules = ['node_test_views']): void { - parent::setUp($import_test_views, $modules); + protected function setUp($import_test_views = TRUE): void { + parent::setUp($import_test_views); + + $this->installEntitySchema('user'); + $this->installEntitySchema('node'); + $this->installSchema('node', ['node_access']); + $this->installConfig(['field', 'filter', 'node']); + ViewTestData::createTestViews(static::class, ['node_test_views']); + + \Drupal::currentUser()->setAccount($this->createUser(['access content'])); - $this->drupalCreateContentType(['type' => 'article']); + $node_type = NodeType::create([ + 'type' => 'article', + 'name' => 'Article', + ]); + $node_type->save(); + node_add_body_field($node_type); // Create two nodes. for ($i = 0; $i < 2; $i++) { - $this->nodes[] = $this->drupalCreateNode( + $this->nodes[] = $this->createNode( [ 'type' => 'article', 'body' => [ @@ -66,7 +87,7 @@ protected function setUp($import_test_views = TRUE, $modules = ['node_test_views /** * Tests the node row plugin. */ - public function testRowPlugin() { + public function testRowPlugin(): void { /** @var \Drupal\Core\Render\RendererInterface $renderer */ $renderer = $this->container->get('renderer'); $view = Views::getView('test_node_row_plugin'); @@ -89,7 +110,7 @@ public function testRowPlugin() { $output = $renderer->renderRoot($output); foreach ($this->nodes as $node) { $this->assertStringContainsString($node->body->summary, $output, 'Make sure the teaser appears in the output of the view.'); - $this->assertStringNotContainsString($node->body->value, $output, 'Make sure the full text does not appears in the output of the view if teaser is set as viewmode.'); + $this->assertStringNotContainsString($node->body->value, $output); } }