You are here

trait ContentTypeCreationTrait in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/node/tests/src/Traits/ContentTypeCreationTrait.php \Drupal\Tests\node\Traits\ContentTypeCreationTrait

Provides methods to create content type from given values.

This trait is meant to be used only by test classes.

Hierarchy

33 files declare their use of ContentTypeCreationTrait
BigPipeRegressionTest.php in core/modules/big_pipe/tests/src/FunctionalJavascript/BigPipeRegressionTest.php
BlockExposedFilterAJAXTest.php in core/modules/views/tests/src/FunctionalJavascript/BlockExposedFilterAJAXTest.php
BrowserTestBase.php in core/tests/Drupal/Tests/BrowserTestBase.php
ClickSortingAJAXTest.php in core/modules/views/tests/src/FunctionalJavascript/ClickSortingAJAXTest.php
ContentModerationStateTest.php in core/modules/content_moderation/tests/src/Kernel/ContentModerationStateTest.php

... See full list

File

core/modules/node/tests/src/Traits/ContentTypeCreationTrait.php, line 14

Namespace

Drupal\Tests\node\Traits
View source
trait ContentTypeCreationTrait {

  /**
   * Creates a custom content type based on default settings.
   *
   * @param array $values
   *   An array of settings to change from the defaults.
   *   Example: 'type' => 'foo'.
   *
   * @return \Drupal\node\Entity\NodeType
   *   Created content type.
   */
  protected function createContentType(array $values = []) {

    // Find a non-existent random type name.
    if (!isset($values['type'])) {
      do {
        $id = strtolower($this
          ->randomMachineName(8));
      } while (NodeType::load($id));
    }
    else {
      $id = $values['type'];
    }
    $values += [
      'type' => $id,
      'name' => $id,
    ];
    $type = NodeType::create($values);
    $status = $type
      ->save();
    node_add_body_field($type);
    if ($this instanceof TestCase) {
      $this
        ->assertSame($status, SAVED_NEW, (new FormattableMarkup('Created content type %type.', [
        '%type' => $type
          ->id(),
      ]))
        ->__toString());
    }
    else {
      $this
        ->assertEquals(SAVED_NEW, $status, (new FormattableMarkup('Created content type %type.', [
        '%type' => $type
          ->id(),
      ]))
        ->__toString());
    }
    return $type;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ContentTypeCreationTrait::createContentType protected function Creates a custom content type based on default settings. 1