You are here

trait ContentModerationTestTrait in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/content_moderation/tests/src/Traits/ContentModerationTestTrait.php \Drupal\Tests\content_moderation\Traits\ContentModerationTestTrait
  2. 9 core/modules/content_moderation/tests/src/Traits/ContentModerationTestTrait.php \Drupal\Tests\content_moderation\Traits\ContentModerationTestTrait

Provides functionality for testing content moderation.

Hierarchy

35 files declare their use of ContentModerationTestTrait
BookContentModerationTest.php in core/modules/book/tests/src/Functional/BookContentModerationTest.php
ContentModerationAccessTest.php in core/modules/content_moderation/tests/src/Kernel/ContentModerationAccessTest.php
ContentModerationStateStorageSchemaTest.php in core/modules/content_moderation/tests/src/Kernel/ContentModerationStateStorageSchemaTest.php
ContentModerationSyncingTest.php in core/modules/content_moderation/tests/src/Kernel/ContentModerationSyncingTest.php
ContentModerationTest.php in core/modules/media_library/tests/src/FunctionalJavascript/ContentModerationTest.php

... See full list

File

core/modules/content_moderation/tests/src/Traits/ContentModerationTestTrait.php, line 11

Namespace

Drupal\Tests\content_moderation\Traits
View source
trait ContentModerationTestTrait {

  /**
   * Creates the editorial workflow.
   *
   * @return \Drupal\workflows\Entity\Workflow
   *   The editorial workflow entity.
   */
  protected function createEditorialWorkflow() {
    $workflow = Workflow::create([
      'type' => 'content_moderation',
      'id' => 'editorial',
      'label' => 'Editorial',
      'type_settings' => [
        'states' => [
          'archived' => [
            'label' => 'Archived',
            'weight' => 5,
            'published' => FALSE,
            'default_revision' => TRUE,
          ],
          'draft' => [
            'label' => 'Draft',
            'published' => FALSE,
            'default_revision' => FALSE,
            'weight' => -5,
          ],
          'published' => [
            'label' => 'Published',
            'published' => TRUE,
            'default_revision' => TRUE,
            'weight' => 0,
          ],
        ],
        'transitions' => [
          'archive' => [
            'label' => 'Archive',
            'from' => [
              'published',
            ],
            'to' => 'archived',
            'weight' => 2,
          ],
          'archived_draft' => [
            'label' => 'Restore to Draft',
            'from' => [
              'archived',
            ],
            'to' => 'draft',
            'weight' => 3,
          ],
          'archived_published' => [
            'label' => 'Restore',
            'from' => [
              'archived',
            ],
            'to' => 'published',
            'weight' => 4,
          ],
          'create_new_draft' => [
            'label' => 'Create New Draft',
            'to' => 'draft',
            'weight' => 0,
            'from' => [
              'draft',
              'published',
            ],
          ],
          'publish' => [
            'label' => 'Publish',
            'to' => 'published',
            'weight' => 1,
            'from' => [
              'draft',
              'published',
            ],
          ],
        ],
      ],
    ]);
    $workflow
      ->save();
    return $workflow;
  }

  /**
   * Adds an entity type ID / bundle ID to the given workflow.
   *
   * @param \Drupal\workflows\WorkflowInterface $workflow
   *   A workflow object.
   * @param string $entity_type_id
   *   The entity type ID to add.
   * @param string $bundle
   *   The bundle ID to add.
   */
  protected function addEntityTypeAndBundleToWorkflow(WorkflowInterface $workflow, $entity_type_id, $bundle) {
    $workflow
      ->getTypePlugin()
      ->addEntityTypeAndBundle($entity_type_id, $bundle);
    $workflow
      ->save();
  }

}

Members