You are here

public function MultivalueTest::setUp in Chosen 3.0.x

Same name and namespace in other branches
  1. 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\Functional

Code

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();
}