protected function FieldFieldTest::setUp in Drupal 10
Same name and namespace in other branches
- 8 core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php \Drupal\Tests\views\Kernel\Handler\FieldFieldTest::setUp()
- 9 core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php \Drupal\Tests\views\Kernel\Handler\FieldFieldTest::setUp()
File
- core/
modules/ views/ tests/ src/ Kernel/ Handler/ FieldFieldTest.php, line 71
Class
- FieldFieldTest
- Provides some integration tests for the Field handler.
Namespace
Drupal\Tests\views\Kernel\HandlerCode
protected function setUp($import_test_views = TRUE) : void {
// First setup the needed entity types before installing the views.
parent::setUp(FALSE);
$this
->installEntitySchema('user');
$this
->installEntitySchema('entity_test');
$this
->installEntitySchema('entity_test_rev');
ViewTestData::createTestViews(static::class, [
'views_test_config',
]);
// Bypass any field access.
$this->adminUser = User::create([
'name' => $this
->randomString(),
]);
$this->adminUser
->save();
$this->container
->get('current_user')
->setAccount($this->adminUser);
$this->testUsers = [];
for ($i = 0; $i < 5; $i++) {
$this->testUsers[$i] = User::create([
'name' => 'test ' . $i,
'timezone' => User::getAllowedTimezones()[$i],
'created' => REQUEST_TIME - rand(0, 3600),
]);
$this->testUsers[$i]
->save();
}
// Setup a field storage and field, but also change the views data for the
// entity_test entity type.
$field_storage = FieldStorageConfig::create([
'field_name' => 'field_test',
'type' => 'integer',
'entity_type' => 'entity_test',
]);
$field_storage
->save();
$field = FieldConfig::create([
'field_name' => 'field_test',
'entity_type' => 'entity_test',
'bundle' => 'entity_test',
]);
$field
->save();
$field_storage_multiple = FieldStorageConfig::create([
'field_name' => 'field_test_multiple',
'type' => 'integer',
'entity_type' => 'entity_test',
'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
]);
$field_storage_multiple
->save();
$field_multiple = FieldConfig::create([
'field_name' => 'field_test_multiple',
'entity_type' => 'entity_test',
'bundle' => 'entity_test',
]);
$field_multiple
->save();
$random_number = (string) 30856;
$random_number_multiple = (string) 1370359990;
for ($i = 0; $i < 5; $i++) {
$this->entities[$i] = $entity = EntityTest::create([
'bundle' => 'entity_test',
'name' => 'test ' . $i,
'field_test' => $random_number[$i],
'field_test_multiple' => [
$random_number_multiple[$i * 2],
$random_number_multiple[$i * 2 + 1],
],
'user_id' => $this->testUsers[$i]
->id(),
]);
$entity
->save();
}
// Setup some test data for entities with revisions.
// We are testing both base field revisions and field config revisions.
$field_storage = FieldStorageConfig::create([
'field_name' => 'field_test',
'type' => 'integer',
'entity_type' => 'entity_test_rev',
]);
$field_storage
->save();
$field = FieldConfig::create([
'field_name' => 'field_test',
'entity_type' => 'entity_test_rev',
'bundle' => 'entity_test_rev',
]);
$field
->save();
$field_storage_multiple = FieldStorageConfig::create([
'field_name' => 'field_test_multiple',
'type' => 'integer',
'entity_type' => 'entity_test_rev',
'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
]);
$field_storage_multiple
->save();
$field_multiple = FieldConfig::create([
'field_name' => 'field_test_multiple',
'entity_type' => 'entity_test_rev',
'bundle' => 'entity_test_rev',
]);
$field_multiple
->save();
$this->entityRevision = [];
$this->entityRevision[0] = $entity = EntityTestRev::create([
'name' => 'base value',
'field_test' => 1,
'field_test_multiple' => [
1,
3,
7,
],
'user_id' => $this->testUsers[0]
->id(),
]);
$entity
->save();
$original_entity = clone $entity;
$entity = clone $original_entity;
$entity
->setNewRevision(TRUE);
$entity->name->value = 'revision value1';
$entity->field_test->value = 2;
$entity->field_test_multiple[0]->value = 0;
$entity->field_test_multiple[1]->value = 3;
$entity->field_test_multiple[2]->value = 5;
$entity->user_id->target_id = $this->testUsers[1]
->id();
$entity
->save();
$this->entityRevision[1] = $entity;
$entity = clone $original_entity;
$entity
->setNewRevision(TRUE);
$entity->name->value = 'revision value2';
$entity->field_test->value = 3;
$entity->field_test_multiple[0]->value = 9;
$entity->field_test_multiple[1]->value = 9;
$entity->field_test_multiple[2]->value = 9;
$entity->user_id->target_id = $this->testUsers[2]
->id();
$entity
->save();
$this->entityRevision[2] = $entity;
$this->entityRevision[3] = $entity = EntityTestRev::create([
'name' => 'next entity value',
'field_test' => 4,
'field_test_multiple' => [
2,
9,
9,
],
'user_id' => $this->testUsers[3]
->id(),
]);
$entity
->save();
\Drupal::state()
->set('entity_test.views_data', [
'entity_test' => [
'id' => [
'field' => [
'id' => 'field',
],
],
],
'entity_test_rev_revision' => [
'id' => [
'field' => [
'id' => 'field',
],
],
],
]);
Views::viewsData()
->clear();
}