3 namespace Drupal\Tests\migrate_drupal\Traits;
6 * Provides helper methods for creating test content.
8 trait CreateTestContentEntitiesTrait {
11 * Gets required modules.
15 protected function getRequiredModules() {
35 * Install required entity schemas.
37 protected function installEntitySchemas() {
38 $this->installEntitySchema('aggregator_feed');
39 $this->installEntitySchema('aggregator_item');
40 $this->installEntitySchema('block_content');
41 $this->installEntitySchema('comment');
42 $this->installEntitySchema('file');
43 $this->installEntitySchema('menu_link_content');
44 $this->installEntitySchema('node');
45 $this->installEntitySchema('taxonomy_term');
46 $this->installEntitySchema('user');
50 * Create several pieces of generic content.
52 protected function createContent() {
53 $entity_type_manager = \Drupal::entityTypeManager();
55 // Create an aggregator feed.
56 if ($entity_type_manager->hasDefinition('aggregator_feed')) {
57 $feed = $entity_type_manager->getStorage('aggregator_feed')->create([
59 'url' => 'http://www.example.com',
63 // Create an aggregator feed item.
64 $item = $entity_type_manager->getStorage('aggregator_item')->create([
65 'title' => 'feed item',
67 'link' => 'http://www.example.com',
72 // Create a block content.
73 if ($entity_type_manager->hasDefinition('block_content')) {
74 $block = $entity_type_manager->getStorage('block_content')->create([
82 if ($entity_type_manager->hasDefinition('node')) {
83 $node = $entity_type_manager->getStorage('node')->create([
90 if ($entity_type_manager->hasDefinition('comment')) {
91 $comment = $entity_type_manager->getStorage('comment')->create([
92 'comment_type' => 'comment',
93 'field_name' => 'comment',
94 'entity_type' => 'node',
95 'entity_id' => $node->id(),
102 if ($entity_type_manager->hasDefinition('file')) {
103 $file = $entity_type_manager->getStorage('file')->create([
104 'uri' => 'public://example.txt',
109 // Create a menu link.
110 if ($entity_type_manager->hasDefinition('menu_link_content')) {
111 $menu_link = $entity_type_manager->getStorage('menu_link_content')->create([
112 'title' => 'menu link',
113 'link' => ['uri' => 'http://www.example.com'],
114 'menu_name' => 'tools',
119 // Create a taxonomy term.
120 if ($entity_type_manager->hasDefinition('taxonomy_term')) {
121 $term = $entity_type_manager->getStorage('taxonomy_term')->create([
129 if ($entity_type_manager->hasDefinition('user')) {
130 $user = $entity_type_manager->getStorage('user')->create([
132 'mail' => 'user@example.com',
139 * Create several pieces of generic content.
141 protected function createContentPostUpgrade() {
142 $entity_type_manager = \Drupal::entityTypeManager();
144 // Create a block content.
145 if ($entity_type_manager->hasDefinition('block_content')) {
146 $block = $entity_type_manager->getStorage('block_content')->create([
147 'info' => 'Post upgrade block',
154 if ($entity_type_manager->hasDefinition('node')) {
155 $node = $entity_type_manager->getStorage('node')->create([
157 'title' => 'Post upgrade page',
162 if ($entity_type_manager->hasDefinition('comment')) {
163 $comment = $entity_type_manager->getStorage('comment')->create([
164 'comment_type' => 'comment',
165 'field_name' => 'comment',
166 'entity_type' => 'node',
167 'entity_id' => $node->id(),
174 if ($entity_type_manager->hasDefinition('file')) {
175 $file = $entity_type_manager->getStorage('file')->create([
176 'uri' => 'public://post_upgrade_example.txt',
181 // Create a menu link.
182 if ($entity_type_manager->hasDefinition('menu_link_content')) {
183 $menu_link = $entity_type_manager->getStorage('menu_link_content')->create([
184 'title' => 'post upgrade menu link',
185 'link' => ['uri' => 'http://www.drupal.org'],
186 'menu_name' => 'tools',
191 // Create a taxonomy term.
192 if ($entity_type_manager->hasDefinition('taxonomy_term')) {
193 $term = $entity_type_manager->getStorage('taxonomy_term')->create([
194 'name' => 'post upgrade term',
201 if ($entity_type_manager->hasDefinition('user')) {
202 $user = $entity_type_manager->getStorage('user')->create([
203 'name' => 'universe',
204 'mail' => 'universe@example.com',