Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / field / tests / src / Kernel / Migrate / d7 / RollbackFieldTest.php
1 <?php
2
3 namespace Drupal\Tests\field\Kernel\Migrate\d7;
4
5 use Drupal\field\Entity\FieldStorageConfig;
6 use Drupal\migrate\MigrateExecutable;
7
8 /**
9  * Migrates and rolls back Drupal 7 fields.
10  *
11  * @group field
12  */
13 class RollbackFieldTest extends MigrateFieldTest {
14
15   /**
16    * Tests migrating D7 fields to field_storage_config entities, then rolling back.
17    */
18   public function testFields() {
19     // Test that the fields have migrated (prior to rollback).
20     parent::testFields();
21
22     $this->executeRollback('d7_field');
23
24     // Check that fields have been rolled back.
25     $rolled_back_field_ids = [
26       'comment.field_integer',
27       'node.taxonomy_forums',
28       'node.field_integer',
29       'node.field_tags',
30       'node.field_term_reference',
31       'node.field_text_list',
32       'node.field_text',
33       'node.field_phone',
34       'node.field_file',
35       'node.field_images',
36       'node.field_image',
37       'node.field_long_text',
38       'node.field_date_with_end_time',
39       'node.field_integer_list',
40       'node.field_date',
41       'node.field_link',
42       'node.field_float',
43       'node.field_boolean',
44       'node.field_email',
45       'user.field_file',
46     ];
47     foreach ($rolled_back_field_ids as $field_id) {
48       $this->assertNull(FieldStorageConfig::load($field_id));
49     }
50
51     // Check that fields that should persist have not been rolled back.
52     $non_rolled_back_field_ids = [
53       'node.body',
54       'comment.comment_body',
55     ];
56     foreach ($non_rolled_back_field_ids as $field_id) {
57       $this->assertNotNull(FieldStorageConfig::load($field_id));
58     }
59   }
60
61   /**
62    * Executes a single rollback.
63    *
64    * @param string|\Drupal\migrate\Plugin\MigrationInterface $migration
65    *   The migration to rollback, or its ID.
66    */
67   protected function executeRollback($migration) {
68     if (is_string($migration)) {
69       $this->migration = $this->getMigration($migration);
70     }
71     else {
72       $this->migration = $migration;
73     }
74     (new MigrateExecutable($this->migration, $this))->rollback();
75   }
76
77 }