function TwigWhiteListTest::setUp

Same name in other branches
  1. 8.9.x core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php \Drupal\KernelTests\Core\Theme\TwigWhiteListTest::setUp()
  2. 10 core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php \Drupal\KernelTests\Core\Theme\TwigWhiteListTest::setUp()
  3. 11.x core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php \Drupal\KernelTests\Core\Theme\TwigWhiteListTest::setUp()

Overrides KernelTestBase::setUp

File

core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php, line 51

Class

TwigWhiteListTest
Tests white-listing of entity properties.

Namespace

Drupal\KernelTests\Core\Theme

Code

protected function setUp() : void {
    parent::setUp();
    \Drupal::service('theme_installer')->install([
        'test_theme',
    ]);
    $this->installSchema('system', [
        'sequences',
    ]);
    $this->installEntitySchema('node');
    $this->installEntitySchema('user');
    $this->installEntitySchema('taxonomy_term');
    NodeType::create([
        'type' => 'page',
        'name' => 'Basic page',
        'display_submitted' => FALSE,
    ])->save();
    // Add a vocabulary so we can test different view modes.
    $vocabulary = Vocabulary::create([
        'name' => $this->randomMachineName(),
        'description' => $this->randomMachineName(),
        'vid' => $this->randomMachineName(),
        'langcode' => LanguageInterface::LANGCODE_NOT_SPECIFIED,
        'help' => '',
    ]);
    $vocabulary->save();
    // Add a term to the vocabulary.
    $this->term = Term::create([
        'name' => 'Sometimes people are just jerks',
        'description' => $this->randomMachineName(),
        'vid' => $vocabulary->id(),
        'langcode' => LanguageInterface::LANGCODE_NOT_SPECIFIED,
    ]);
    $this->term
        ->save();
    // Create a field.
    $handler_settings = [
        'target_bundles' => [
            $vocabulary->id() => $vocabulary->id(),
        ],
        'auto_create' => TRUE,
    ];
    // Add the term field.
    FieldStorageConfig::create([
        'field_name' => 'field_term',
        'type' => 'entity_reference',
        'entity_type' => 'node',
        'cardinality' => 1,
        'settings' => [
            'target_type' => 'taxonomy_term',
        ],
    ])->save();
    FieldConfig::create([
        'field_name' => 'field_term',
        'entity_type' => 'node',
        'bundle' => 'page',
        'label' => 'Terms',
        'settings' => [
            'handler' => 'default',
            'handler_settings' => $handler_settings,
        ],
    ])->save();
    // Show on default display and teaser.
    \Drupal::service('entity_display.repository')->getViewDisplay('node', 'page')
        ->setComponent('field_term', [
        'type' => 'entity_reference_label',
    ])
        ->save();
    // Boot twig environment.
    $this->twig = \Drupal::service('twig');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.