annotate core/modules/field/tests/src/Kernel/ConfigFieldDefinitionTest.php @ 13:5fb285c0d0e3

Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've been lucky to get away with this so far, as we don't support self-registration which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5 was vulnerable to.
author Chris Cannam
date Mon, 23 Apr 2018 09:33:26 +0100
parents 4c8ae668cc8c
children 129ea1e6d783
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\field\Kernel;
Chris@0 4
Chris@0 5 use Drupal\Core\Field\FieldDefinitionInterface;
Chris@0 6 use Drupal\Core\Field\FieldStorageDefinitionInterface;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * Tests exposing field definitions for configurable fields.
Chris@0 10 *
Chris@0 11 * @group field
Chris@0 12 */
Chris@0 13 class ConfigFieldDefinitionTest extends FieldKernelTestBase {
Chris@0 14
Chris@0 15 /**
Chris@0 16 * The entity manager service.
Chris@0 17 *
Chris@0 18 * @var \Drupal\Core\Entity\EntityManagerInterface;
Chris@0 19 */
Chris@0 20 protected $entityManager;
Chris@0 21
Chris@0 22 /**
Chris@0 23 * @var string
Chris@0 24 */
Chris@0 25 private $entityType;
Chris@0 26
Chris@0 27 /**
Chris@0 28 * @var string
Chris@0 29 */
Chris@0 30 private $bundle;
Chris@0 31
Chris@0 32 /**
Chris@0 33 * {@inheritdoc}
Chris@0 34 */
Chris@0 35 protected function setUp() {
Chris@0 36 parent::setUp();
Chris@0 37
Chris@0 38 // Create a field and a storage of type 'test_field', on the 'entity_test'
Chris@0 39 // entity type.
Chris@0 40 $this->entityType = 'entity_test';
Chris@0 41 $this->bundle = 'entity_test';
Chris@0 42 $this->createFieldWithStorage('', $this->entityType, $this->bundle);
Chris@0 43 $this->entityManager = $this->container->get('entity.manager');
Chris@0 44
Chris@0 45 // Create a second field on 'entity_test_rev'.
Chris@0 46 $this->createFieldWithStorage('_rev', 'entity_test_rev', 'entity_test_rev');
Chris@0 47 }
Chris@0 48
Chris@0 49 /**
Chris@0 50 * Makes sure a field definition is exposed for a configurable field.
Chris@0 51 */
Chris@0 52 public function testBundleFieldDefinition() {
Chris@0 53 $definitions = $this->entityManager->getFieldDefinitions($this->entityType, $this->bundle);
Chris@0 54 $this->assertTrue(isset($definitions[$this->fieldTestData->field->getName()]));
Chris@0 55 $this->assertTrue($definitions[$this->fieldTestData->field->getName()] instanceof FieldDefinitionInterface);
Chris@0 56 // Make sure fields on other entity types are not exposed.
Chris@0 57 $this->assertFalse(isset($definitions[$this->fieldTestData->field_rev->getName()]));
Chris@0 58 }
Chris@0 59
Chris@0 60 /**
Chris@0 61 * Makes sure a field storage definition is exposed for a configurable field.
Chris@0 62 */
Chris@0 63 public function testFieldStorageDefinition() {
Chris@0 64 $field_storage_definitions = $this->entityManager->getFieldStorageDefinitions($this->entityType);
Chris@0 65 $this->assertTrue(isset($field_storage_definitions[$this->fieldTestData->field->getName()]));
Chris@0 66 $this->assertTrue($field_storage_definitions[$this->fieldTestData->field->getName()] instanceof FieldStorageDefinitionInterface);
Chris@0 67 // Make sure storages on other entity types are not exposed.
Chris@0 68 $this->assertFalse(isset($field_storage_definitions[$this->fieldTestData->field_rev->getName()]));
Chris@0 69 }
Chris@0 70
Chris@0 71 }