trait CreateTestContentEntitiesTrait

Same name in other branches
  1. 8.9.x core/modules/migrate_drupal/tests/src/Traits/CreateTestContentEntitiesTrait.php \Drupal\Tests\migrate_drupal\Traits\CreateTestContentEntitiesTrait
  2. 10 core/modules/migrate_drupal/tests/src/Traits/CreateTestContentEntitiesTrait.php \Drupal\Tests\migrate_drupal\Traits\CreateTestContentEntitiesTrait
  3. 11.x core/modules/migrate_drupal/tests/src/Traits/CreateTestContentEntitiesTrait.php \Drupal\Tests\migrate_drupal\Traits\CreateTestContentEntitiesTrait

Provides helper methods for creating test content.

Hierarchy

8 files declare their use of CreateTestContentEntitiesTrait
CredentialFormTest.php in core/modules/migrate_drupal_ui/tests/src/Functional/CredentialFormTest.php
MigrateDrupal6AuditIdsTest.php in core/modules/migrate_drupal/tests/src/Kernel/d6/MigrateDrupal6AuditIdsTest.php
MigrateDrupal7AuditIdsTest.php in core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7AuditIdsTest.php
MigrateNodeCompleteTest.php in core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeCompleteTest.php
MigrateNodeCompleteTest.php in core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeCompleteTest.php

... See full list

File

core/modules/migrate_drupal/tests/src/Traits/CreateTestContentEntitiesTrait.php, line 8

Namespace

Drupal\Tests\migrate_drupal\Traits
View source
trait CreateTestContentEntitiesTrait {
    
    /**
     * Gets required modules.
     *
     * @return array
     */
    protected function getRequiredModules() {
        return [
            // @todo Remove aggregator in https://www.drupal.org/project/drupal/issues/3264120
'aggregator',
            'block_content',
            'comment',
            'field',
            'file',
            'link',
            'menu_link_content',
            'migrate_drupal',
            'node',
            'options',
            'system',
            'taxonomy',
            'text',
            'user',
        ];
    }
    
    /**
     * Install required entity schemas.
     */
    protected function installEntitySchemas() {
        // @todo Remove aggregator in https://www.drupal.org/project/drupal/issues/3264120
        $this->installEntitySchema('aggregator_feed');
        $this->installEntitySchema('aggregator_item');
        $this->installEntitySchema('block_content');
        $this->installEntitySchema('comment');
        $this->installEntitySchema('file');
        $this->installEntitySchema('menu_link_content');
        $this->installEntitySchema('node');
        $this->installEntitySchema('path_alias');
        $this->installEntitySchema('taxonomy_term');
        $this->installEntitySchema('user');
    }
    
    /**
     * Create several pieces of generic content.
     */
    protected function createContent() {
        $entity_type_manager = \Drupal::entityTypeManager();
        // @todo Remove aggregator in https://www.drupal.org/project/drupal/issues/3264120
        // Create an aggregator feed.
        if ($entity_type_manager->hasDefinition('aggregator_feed')) {
            $feed = $entity_type_manager->getStorage('aggregator_feed')
                ->create([
                'title' => 'feed',
                'url' => 'http://www.example.com',
            ]);
            $feed->save();
            // Create an aggregator feed item.
            $item = $entity_type_manager->getStorage('aggregator_item')
                ->create([
                'title' => 'feed item',
                'fid' => $feed->id(),
                'link' => 'http://www.example.com',
            ]);
            $item->save();
        }
        // Create a block content.
        if ($entity_type_manager->hasDefinition('block_content')) {
            $block = $entity_type_manager->getStorage('block_content')
                ->create([
                'info' => 'block',
                'type' => 'block',
            ]);
            $block->save();
        }
        // Create a node.
        if ($entity_type_manager->hasDefinition('node')) {
            $node = $entity_type_manager->getStorage('node')
                ->create([
                'type' => 'page',
                'title' => 'page',
            ]);
            $node->save();
            // Create a comment.
            if ($entity_type_manager->hasDefinition('comment')) {
                $comment = $entity_type_manager->getStorage('comment')
                    ->create([
                    'comment_type' => 'comment',
                    'field_name' => 'comment',
                    'entity_type' => 'node',
                    'entity_id' => $node->id(),
                ]);
                $comment->save();
            }
        }
        // Create a file.
        if ($entity_type_manager->hasDefinition('file')) {
            $file = $entity_type_manager->getStorage('file')
                ->create([
                'uri' => 'public://example.txt',
            ]);
            $file->save();
        }
        // Create a menu link.
        if ($entity_type_manager->hasDefinition('menu_link_content')) {
            $menu_link = $entity_type_manager->getStorage('menu_link_content')
                ->create([
                'title' => 'menu link',
                'link' => [
                    'uri' => 'http://www.example.com',
                ],
                'menu_name' => 'tools',
            ]);
            $menu_link->save();
        }
        // Create a taxonomy term.
        if ($entity_type_manager->hasDefinition('taxonomy_term')) {
            $term = $entity_type_manager->getStorage('taxonomy_term')
                ->create([
                'name' => 'term',
                'vid' => 'term',
            ]);
            $term->save();
        }
        // Create a user.
        if ($entity_type_manager->hasDefinition('user')) {
            $user = $entity_type_manager->getStorage('user')
                ->create([
                'name' => 'user',
                'mail' => 'user@example.com',
            ]);
            $user->save();
        }
    }
    
    /**
     * Create several pieces of generic content.
     */
    protected function createContentPostUpgrade() {
        $entity_type_manager = \Drupal::entityTypeManager();
        // Create a block content.
        if ($entity_type_manager->hasDefinition('block_content')) {
            $block = $entity_type_manager->getStorage('block_content')
                ->create([
                'info' => 'Post upgrade block',
                'type' => 'block',
            ]);
            $block->save();
        }
        // Create a node.
        if ($entity_type_manager->hasDefinition('node')) {
            $node = $entity_type_manager->getStorage('node')
                ->create([
                'type' => 'page',
                'title' => 'Post upgrade page',
            ]);
            $node->save();
            // Create a comment.
            if ($entity_type_manager->hasDefinition('comment')) {
                $comment = $entity_type_manager->getStorage('comment')
                    ->create([
                    'comment_type' => 'comment',
                    'field_name' => 'comment',
                    'entity_type' => 'node',
                    'entity_id' => $node->id(),
                ]);
                $comment->save();
            }
        }
        // Create a file.
        if ($entity_type_manager->hasDefinition('file')) {
            $file = $entity_type_manager->getStorage('file')
                ->create([
                'uri' => 'public://post_upgrade_example.txt',
            ]);
            $file->save();
        }
        // Create a menu link.
        if ($entity_type_manager->hasDefinition('menu_link_content')) {
            $menu_link = $entity_type_manager->getStorage('menu_link_content')
                ->create([
                'title' => 'post upgrade menu link',
                'link' => [
                    'uri' => 'http://www.drupal.org',
                ],
                'menu_name' => 'tools',
            ]);
            $menu_link->save();
        }
        // Create a taxonomy term.
        if ($entity_type_manager->hasDefinition('taxonomy_term')) {
            $term = $entity_type_manager->getStorage('taxonomy_term')
                ->create([
                'name' => 'post upgrade term',
                'vid' => 'term',
            ]);
            $term->save();
        }
        // Create a user.
        if ($entity_type_manager->hasDefinition('user')) {
            $user = $entity_type_manager->getStorage('user')
                ->create([
                'name' => 'universe',
                'mail' => 'universe@example.com',
            ]);
            $user->save();
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary
CreateTestContentEntitiesTrait::createContent protected function Create several pieces of generic content.
CreateTestContentEntitiesTrait::createContentPostUpgrade protected function Create several pieces of generic content.
CreateTestContentEntitiesTrait::getRequiredModules protected function Gets required modules.
CreateTestContentEntitiesTrait::installEntitySchemas protected function Install required entity schemas.

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