public function MultivalueTest::setUp in Chosen 3.0.x
Same name and namespace in other branches
- 8.2 tests/src/Functional/MultivalueTest.php \Drupal\Tests\chosen\Functional\MultivalueTest::setUp()
Overrides BrowserTestBase::setUp
File
- tests/
src/ Functional/ MultivalueTest.php, line 36
Class
- MultivalueTest
- Tests that multivalue select fields are handled properly.
Namespace
Drupal\Tests\chosen\FunctionalCode
public function setUp() {
parent::setUp();
// Enable chosen for all multiselect fields.
$this->container
->get('config.factory')
->getEditable('chosen.settings')
->set('minimum_multiple', 0)
->save();
// Add an 'article' content type.
$this
->createContentType([
'type' => 'article',
]);
// Login an admin user.
$user = $this
->drupalCreateUser([
'access content',
'bypass node access',
]);
$this
->drupalLogin($user);
// Add a multiple select field.
$storage = FieldStorageConfig::create([
'type' => 'list_string',
'entity_type' => 'node',
'field_name' => 'test_multiselect',
'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
]);
$storage
->setSetting('allowed_values', [
'one' => 'One',
'two' => 'Two',
]);
$storage
->save();
$field = FieldConfig::create([
'field_name' => 'test_multiselect',
'bundle' => 'article',
'entity_type' => 'node',
]);
$field
->save();
// Try loading the entity from configuration.
$entity_form_display = EntityFormDisplay::load('node' . '.' . 'article' . '.' . 'default');
// If not found, create a fresh entity object. We do not preemptively create
// new entity form display configuration entries for each existing entity type
// and bundle whenever a new form mode becomes available. Instead,
// configuration entries are only created when an entity form display is
// explicitly configured and saved.
if (!$entity_form_display) {
$entity_form_display = EntityFormDisplay::create([
'targetEntityType' => 'node',
'bundle' => 'article',
'mode' => 'default',
'status' => TRUE,
]);
}
$entity_form_display
->setComponent('test_multiselect', [
'type' => 'options_select',
])
->save();
}