From 61f97d319db682747c45215c75ac9623a738d778 Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Mon, 3 Jun 2019 19:58:54 +0100
Subject: [PATCH] =?UTF-8?q?Issue=20#3041837=20by=20claudiu.cristea,=20nave?=
 =?UTF-8?q?envalecha,=20Krzysztof=20Doma=C5=84ski,=20Lendude:=20Convert=20?=
 =?UTF-8?q?UserDataTest=20into=20a=20kernel=20test?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/Functional/Views/UserDataTest.php     | 50 --------------
 .../tests/src/Kernel/Views/UserDataTest.php   | 65 +++++++++++++++++++
 2 files changed, 65 insertions(+), 50 deletions(-)
 delete mode 100644 core/modules/user/tests/src/Functional/Views/UserDataTest.php
 create mode 100644 core/modules/user/tests/src/Kernel/Views/UserDataTest.php

diff --git a/core/modules/user/tests/src/Functional/Views/UserDataTest.php b/core/modules/user/tests/src/Functional/Views/UserDataTest.php
deleted file mode 100644
index d15e6f368dde..000000000000
--- a/core/modules/user/tests/src/Functional/Views/UserDataTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Drupal\Tests\user\Functional\Views;
-
-use Drupal\views\Views;
-
-/**
- * Tests the user data service field handler.
- *
- * @group user
- * @see \Drupal\user\Plugin\views\field\UserData
- */
-class UserDataTest extends UserTestBase {
-
-  /**
-   * Provides the user data service object.
-   *
-   * @var \Drupal\user\UserDataInterface
-   */
-  protected $userData;
-
-  /**
-   * Views used by this test.
-   *
-   * @var array
-   */
-  public static $testViews = ['test_user_data'];
-
-  /**
-   * Tests field handler.
-   */
-  public function testDataField() {
-    // But some random values into the user data service.
-    $this->userData = $this->container->get('user.data');
-    $random_value = $this->randomMachineName();
-    $this->userData->set('views_test_config', $this->users[0]->id(), 'test_value_name', $random_value);
-
-    $view = Views::getView('test_user_data');
-    $this->executeView($view);
-
-    $output = $view->field['data']->render($view->result[0]);
-    $this->assertEqual($output, $random_value, 'A valid user data got rendered.');
-
-    $view->field['data']->options['data_name'] = $this->randomMachineName();
-    $output = $view->field['data']->render($view->result[0]);
-    $this->assertFalse($output, 'An invalid configuration does not return anything');
-
-  }
-
-}
diff --git a/core/modules/user/tests/src/Kernel/Views/UserDataTest.php b/core/modules/user/tests/src/Kernel/Views/UserDataTest.php
new file mode 100644
index 000000000000..948764955131
--- /dev/null
+++ b/core/modules/user/tests/src/Kernel/Views/UserDataTest.php
@@ -0,0 +1,65 @@
+<?php
+
+namespace Drupal\Tests\user\Kernel\Views;
+
+use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
+use Drupal\user\Entity\User;
+use Drupal\views\Tests\ViewTestData;
+use Drupal\views\Views;
+
+/**
+ * Tests the user data service field handler.
+ *
+ * @group user
+ *
+ * @see \Drupal\user\Plugin\views\field\UserData
+ */
+class UserDataTest extends ViewsKernelTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $testViews = ['test_user_data'];
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['user_test_views'];
+
+  /**
+   * Tests field handler.
+   */
+  public function testDataField() {
+    ViewTestData::createTestViews(get_class($this), ['user_test_views']);
+
+    $this->installEntitySchema('user');
+    $this->installSchema('user', ['users_data']);
+
+    $user = User::create([
+      // Set 'uid' because the 'test_user_data' view filters the user with an ID
+      // equal to 2.
+      'uid' => 2,
+      'name' => $this->randomMachineName(),
+    ]);
+    $user->save();
+
+    // Add some random value as user data.
+    $user_data = $this->container->get('user.data');
+    $random_value = $this->randomMachineName();
+    $user_data->set('views_test_config', $user->id(), 'test_value_name', $random_value);
+
+    $view = Views::getView('test_user_data');
+    $this->executeView($view);
+
+    $output = $view->field['data']->render($view->result[0]);
+    // Assert that using a valid user data key renders the value.
+    $this->assertEquals($random_value, $output);
+
+    $view->field['data']->options['data_name'] = $this->randomMachineName();
+
+    $output = $view->field['data']->render($view->result[0]);
+    // An invalid configuration does not return anything.
+    $this->assertNull($output);
+  }
+
+}
-- 
GitLab