trait ContentModerationTestTrait

Same name in other branches
  1. 9 core/modules/content_moderation/tests/src/Traits/ContentModerationTestTrait.php \Drupal\Tests\content_moderation\Traits\ContentModerationTestTrait
  2. 8.9.x core/modules/content_moderation/tests/src/Traits/ContentModerationTestTrait.php \Drupal\Tests\content_moderation\Traits\ContentModerationTestTrait
  3. 10 core/modules/content_moderation/tests/src/Traits/ContentModerationTestTrait.php \Drupal\Tests\content_moderation\Traits\ContentModerationTestTrait

Provides functionality for testing content moderation.

Hierarchy

39 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
ContentModerationResaveTest.php in core/modules/content_moderation/tests/src/Kernel/ContentModerationResaveTest.php
ContentModerationStateStorageSchemaTest.php in core/modules/content_moderation/tests/src/Kernel/ContentModerationStateStorageSchemaTest.php
ContentModerationStateTest.php in core/modules/content_moderation/tests/src/Kernel/ContentModerationStateTest.php

... See full list

File

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

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() {
        // Allow this method to be called twice from the same test method.
        if ($workflow = Workflow::load('editorial')) {
            return $workflow;
        }
        $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

Title Sort descending Modifiers Object type Summary Overrides
ContentModerationTestTrait::addEntityTypeAndBundleToWorkflow protected function Adds an entity type ID / bundle ID to the given workflow. 1
ContentModerationTestTrait::createEditorialWorkflow protected function Creates the editorial workflow. 1

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