Security update for Core, with self-updated composer
[yaffs-website] / web / core / tests / Drupal / KernelTests / Core / Field / Entity / BaseFieldOverrideTest.php
diff --git a/web/core/tests/Drupal/KernelTests/Core/Field/Entity/BaseFieldOverrideTest.php b/web/core/tests/Drupal/KernelTests/Core/Field/Entity/BaseFieldOverrideTest.php
new file mode 100644 (file)
index 0000000..404c2f0
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+namespace Drupal\KernelTests\Core\Field\Entity;
+
+use Drupal\Core\Field\BaseFieldDefinition;
+use Drupal\Core\Field\Entity\BaseFieldOverride;
+use Drupal\Core\Field\FieldItemList;
+use Drupal\KernelTests\KernelTestBase;
+
+/**
+ * @coversDefaultClass \Drupal\Core\Field\Entity\BaseFieldOverride
+ * @group Field
+ */
+class BaseFieldOverrideTest extends KernelTestBase {
+
+  /**
+   * Modules to install.
+   *
+   * @var array
+   */
+  public static $modules = ['system'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('base_field_override');
+  }
+
+  /**
+   * @covers ::getClass
+   *
+   * @dataProvider getClassTestCases
+   */
+  public function testGetClass($field_type, $base_field_class, $expected_override_class) {
+    $base_field = BaseFieldDefinition::create($field_type)
+      ->setName('Test Field')
+      ->setTargetEntityTypeId('entity_test');
+    if ($base_field_class) {
+      $base_field->setClass($base_field_class);
+    }
+    $override = BaseFieldOverride::createFromBaseFieldDefinition($base_field, 'test_bundle');
+    $this->assertEquals($expected_override_class, ltrim($override->getClass(), '\\'));
+  }
+
+  /**
+   * Test cases for ::testGetClass.
+   */
+  public function getClassTestCases() {
+    return [
+      'String (default class)' => [
+        'string',
+        FALSE,
+        FieldItemList::class,
+      ],
+      'String (overriden class)' => [
+        'string',
+        static::class,
+        static::class,
+      ],
+    ];
+  }
+
+}