ContentTypeCreationTrait.php

Same filename in other branches
  1. 8.9.x core/modules/simpletest/src/ContentTypeCreationTrait.php
  2. 8.9.x core/modules/node/tests/src/Traits/ContentTypeCreationTrait.php
  3. 10 core/modules/node/tests/src/Traits/ContentTypeCreationTrait.php
  4. 11.x core/modules/node/tests/src/Traits/ContentTypeCreationTrait.php

Namespace

Drupal\Tests\node\Traits

File

core/modules/node/tests/src/Traits/ContentTypeCreationTrait.php

View source
<?php

namespace Drupal\Tests\node\Traits;

use Drupal\Component\Render\FormattableMarkup;
use Drupal\node\Entity\NodeType;
use PHPUnit\Framework\TestCase;

/**
 * Provides methods to create content type from given values.
 *
 * This trait is meant to be used only by test classes.
 */
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;
    }

}

Traits

Title Deprecated Summary
ContentTypeCreationTrait Provides methods to create content type from given values.

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