diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal6.php b/core/modules/migrate_drupal/tests/fixtures/drupal6.php index 3b9efe5..8f88300 100644 --- a/core/modules/migrate_drupal/tests/fixtures/drupal6.php +++ b/core/modules/migrate_drupal/tests/fixtures/drupal6.php @@ -34072,7 +34072,7 @@ 'help' => '', 'relations' => '1', 'hierarchy' => '2', - 'multiple' => '0', + 'multiple' => '1', 'required' => '0', 'tags' => '0', 'module' => 'taxonomy', diff --git a/core/modules/taxonomy/migration_templates/d6_vocabulary_field.yml b/core/modules/taxonomy/migration_templates/d6_vocabulary_field.yml index 5139f31..a1c9735 100644 --- a/core/modules/taxonomy/migration_templates/d6_vocabulary_field.yml +++ b/core/modules/taxonomy/migration_templates/d6_vocabulary_field.yml @@ -8,7 +8,6 @@ source: entity_type: node type: entity_reference target_entity_type: taxonomy_term - cardinality: -1 process: entity_type: 'constants/entity_type' type: 'constants/type' @@ -21,7 +20,7 @@ process: plugin: skip_on_empty method: row 'settings/target_type': 'constants/target_entity_type' - cardinality: 'constants/cardinality' + cardinality: cardinality destination: plugin: md_entity:field_storage_config migration_dependencies: diff --git a/core/modules/taxonomy/src/Plugin/migrate/source/d6/Vocabulary.php b/core/modules/taxonomy/src/Plugin/migrate/source/d6/Vocabulary.php index d2d3f19..5c605bb 100644 --- a/core/modules/taxonomy/src/Plugin/migrate/source/d6/Vocabulary.php +++ b/core/modules/taxonomy/src/Plugin/migrate/source/d6/Vocabulary.php @@ -9,6 +9,7 @@ use Drupal\migrate\Row; use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase; +use Drupal\Core\Field\FieldStorageDefinitionInterface; /** * Drupal 6 vocabularies source from database. @@ -72,6 +73,7 @@ public function prepareRow(Row $row) { ->execute() ->fetchCol(); $row->setSourceProperty('node_types', $node_types); + $row->setSourceProperty('cardinality', ($row->getSourceProperty('tags') == 1 || $row->getSourceProperty('multiple') == 1) ? FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED : 1); return parent::prepareRow($row); } diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php index bab6ae5..8f2307d 100644 --- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php +++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php @@ -10,6 +10,7 @@ use Drupal\field\Entity\FieldConfig; use Drupal\migrate\Entity\Migration; use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase; +use Drupal\taxonomy\Entity\Vocabulary; /** * Vocabulary field instance migration. diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php index 9e866d8..b8d99ed 100644 --- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php +++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php @@ -37,11 +37,13 @@ protected function setUp() { public function testVocabularyField() { // Test that the field exists. $field_storage_id = 'node.tags'; + /** @var \Drupal\field\FieldStorageConfigInterface $field_storage */ $field_storage = FieldStorageConfig::load($field_storage_id); $this->assertIdentical($field_storage_id, $field_storage->id()); $settings = $field_storage->getSettings(); $this->assertIdentical('taxonomy_term', $settings['target_type'], "Target type is correct."); + $this->assertIdentical(1, $field_storage->getCardinality(), "Field cardinality in 1."); $this->assertIdentical(array('node', 'tags'), Migration::load('d6_vocabulary_field')->getIdMap()->lookupDestinationID(array(4)), "Test IdMap"); } diff --git a/core/modules/taxonomy/tests/src/Unit/Migrate/d6/VocabularyTest.php b/core/modules/taxonomy/tests/src/Unit/Migrate/d6/VocabularyTest.php index 60362d7..ff97e44 100644 --- a/core/modules/taxonomy/tests/src/Unit/Migrate/d6/VocabularyTest.php +++ b/core/modules/taxonomy/tests/src/Unit/Migrate/d6/VocabularyTest.php @@ -39,6 +39,7 @@ class VocabularyTest extends MigrateSqlSourceTestCase { 'module' => 'taxonomy', 'weight' => 0, 'node_types' => ['page', 'article'], + 'cardinality' => -1, ], [ 'vid' => 2, @@ -53,6 +54,7 @@ class VocabularyTest extends MigrateSqlSourceTestCase { 'module' => 'taxonomy', 'weight' => 0, 'node_types' => ['article'], + 'cardinality' => 1, ], ];