protected function SelectOtherInstallTestScript::createSelectOtherListField in CCK Select Other 8
Creates a select other field on the content type.
Parameters
string $entity_type: The entity type id.
string $bundle: The bundle id.
string $type: The field type plugin ID.
array $fieldInfo: The field storage configuration.
array $instanceInfo: The field configuration.
Return value
\Drupal\Core\Entity\EntityInterface|\Drupal\field\Entity\FieldStorageConfig The field config instance.
Throws
\Drupal\Core\Entity\EntityStorageException
1 call to SelectOtherInstallTestScript::createSelectOtherListField()
- SelectOtherInstallTestScript::setup in tests/
src/ TestSite/ SelectOtherInstallTestScript.php - Run the code to setup the test environment.
File
- tests/
src/ TestSite/ SelectOtherInstallTestScript.php, line 133
Class
- SelectOtherInstallTestScript
- Setup file used for cck_select_other Nightwatch tests.
Namespace
Drupal\Tests\cck_select_other\TestSiteCode
protected function createSelectOtherListField($entity_type = 'node', $bundle = 'page', $type = 'list_string', array $fieldInfo = [], array $instanceInfo = []) {
$random = $this
->getRandomGenerator();
if (!isset($fieldInfo['field_name'])) {
$fieldInfo['field_name'] = strtolower($random
->name(8, TRUE));
}
// Create field storage instance.
$storage_values = NestedArray::mergeDeep($fieldInfo, [
'entity_type' => $entity_type,
'type' => $type,
]);
$fieldStorage = FieldStorageConfig::create($storage_values);
$fieldStorage
->save();
// Create field instance.
if (!isset($instanceInfo['label'])) {
$instanceInfo['label'] = $random
->string(15);
}
$field_values = NestedArray::mergeDeep($instanceInfo, [
'field_name' => $fieldStorage
->getName(),
'entity_type' => $entity_type,
'bundle' => $bundle,
]);
$field = FieldConfig::create($field_values);
$field
->save();
// Create form and display entities for select other field.
$display_id = $entity_type . '.' . $bundle . '.default';
$formDisplay = EntityFormDisplay::load($display_id);
$formDisplay
->setComponent($fieldStorage
->getName(), [
'type' => 'cck_select_other',
'weight' => -1,
]);
$formDisplay
->save();
$viewDisplay = EntityViewDisplay::load($display_id);
$viewDisplay
->setComponent($fieldStorage
->getName(), [
'type' => 'cck_select_other',
'weight' => -1,
]);
$viewDisplay
->save();
return $fieldStorage;
}