Issue #2665196 by rakesh.gectcr, quietone, Manuel Garcia, Jo Fitzgerald, webflo, mikeryan, phenaproxima, heddn: Migration for email fields is missing
parent
7e3527ed2f
commit
882537ab56
|
|
@ -0,0 +1,54 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\Core\Field\Plugin\migrate\field;
|
||||||
|
|
||||||
|
use Drupal\migrate\Plugin\MigrationInterface;
|
||||||
|
use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @MigrateField(
|
||||||
|
* id = "email",
|
||||||
|
* core = {6,7},
|
||||||
|
* type_map = {
|
||||||
|
* "email" = "email"
|
||||||
|
* }
|
||||||
|
* )
|
||||||
|
*/
|
||||||
|
class Email extends FieldPluginBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getFieldWidgetMap() {
|
||||||
|
return [
|
||||||
|
'email_textfield' => 'email_default',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getFieldFormatterMap() {
|
||||||
|
return [
|
||||||
|
'email_formatter_default' => 'basic_string',
|
||||||
|
'email_formatter_contact' => 'basic_string',
|
||||||
|
'email_formatter_plain' => 'basic_string',
|
||||||
|
'email_formatter_spamspan' => 'basic_string',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function processFieldValues(MigrationInterface $migration, $field_name, $data) {
|
||||||
|
$process = [
|
||||||
|
'plugin' => 'iterator',
|
||||||
|
'source' => $field_name,
|
||||||
|
'process' => [
|
||||||
|
'value' => 'email',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
$migration->setProcessOfProperty($field_name, $process);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -70,6 +70,10 @@ class MigrateFieldTest extends MigrateDrupal6TestBase {
|
||||||
$this->assertIdentical('1.2', $field_storage->getSetting('allowed_values')['1.2'], t('First allowed value is set to 1.2'));
|
$this->assertIdentical('1.2', $field_storage->getSetting('allowed_values')['1.2'], t('First allowed value is set to 1.2'));
|
||||||
$this->assertIdentical('2.1', $field_storage->getSetting('allowed_values')['2.1'], t('Second allowed value is set to 1.2'));
|
$this->assertIdentical('2.1', $field_storage->getSetting('allowed_values')['2.1'], t('Second allowed value is set to 1.2'));
|
||||||
|
|
||||||
|
// Email field.
|
||||||
|
$field_storage = FieldStorageConfig::load('node.field_test_email');
|
||||||
|
$this->assertSame("email", $field_storage->getType(), t('Field type is @fieldtype. It should be email.', ['@fieldtype' => $field_storage->getType()]));
|
||||||
|
|
||||||
// Float field with a single checkbox.
|
// Float field with a single checkbox.
|
||||||
$field_storage = FieldStorageConfig::load('node.field_test_float_single_checkbox');
|
$field_storage = FieldStorageConfig::load('node.field_test_float_single_checkbox');
|
||||||
$this->assertIdentical("boolean", $field_storage->getType(), t('Field type is @fieldtype. It should be boolean.', ['@fieldtype' => $field_storage->getType()]));
|
$this->assertIdentical("boolean", $field_storage->getType(), t('Field type is @fieldtype. It should be boolean.', ['@fieldtype' => $field_storage->getType()]));
|
||||||
|
|
|
||||||
|
|
@ -3406,7 +3406,7 @@ $connection->insert('content_type_story')
|
||||||
'field_test_date_value' => NULL,
|
'field_test_date_value' => NULL,
|
||||||
'field_test_datestamp_value' => NULL,
|
'field_test_datestamp_value' => NULL,
|
||||||
'field_test_datetime_value' => NULL,
|
'field_test_datetime_value' => NULL,
|
||||||
'field_test_email_email' => NULL,
|
'field_test_email_email' => 'PrincessRuwenne@example.com',
|
||||||
'field_test_filefield_fid' => '5',
|
'field_test_filefield_fid' => '5',
|
||||||
'field_test_filefield_list' => '1',
|
'field_test_filefield_list' => '1',
|
||||||
'field_test_filefield_data' => 'a:1:{s:11:"description";s:4:"desc";}',
|
'field_test_filefield_data' => 'a:1:{s:11:"description";s:4:"desc";}',
|
||||||
|
|
@ -3435,7 +3435,7 @@ $connection->insert('content_type_story')
|
||||||
'field_test_date_value' => NULL,
|
'field_test_date_value' => NULL,
|
||||||
'field_test_datestamp_value' => NULL,
|
'field_test_datestamp_value' => NULL,
|
||||||
'field_test_datetime_value' => NULL,
|
'field_test_datetime_value' => NULL,
|
||||||
'field_test_email_email' => NULL,
|
'field_test_email_email' => 'PrincessRuwenne@example.com',
|
||||||
'field_test_filefield_fid' => NULL,
|
'field_test_filefield_fid' => NULL,
|
||||||
'field_test_filefield_list' => NULL,
|
'field_test_filefield_list' => NULL,
|
||||||
'field_test_filefield_data' => NULL,
|
'field_test_filefield_data' => NULL,
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,9 @@ class MigrateNodeTest extends MigrateNodeTestBase {
|
||||||
$this->assertIdentical('desc', $node->field_test_filefield->description);
|
$this->assertIdentical('desc', $node->field_test_filefield->description);
|
||||||
$this->assertIdentical('4', $node->field_test_filefield->target_id);
|
$this->assertIdentical('4', $node->field_test_filefield->target_id);
|
||||||
|
|
||||||
|
// Test that an email field is migrated.
|
||||||
|
$this->assertSame('PrincessRuwenne@example.com', $node->field_test_email->value);
|
||||||
|
|
||||||
$node = Node::load(2);
|
$node = Node::load(2);
|
||||||
$this->assertIdentical('Test title rev 3', $node->getTitle());
|
$this->assertIdentical('Test title rev 3', $node->getTitle());
|
||||||
$this->assertIdentical('test rev 3', $node->body->value);
|
$this->assertIdentical('test rev 3', $node->body->value);
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,9 @@ class MigrateNodeTest extends MigrateDrupal7TestBase {
|
||||||
$this->assertIdentical('93', $node->field_images->height);
|
$this->assertIdentical('93', $node->field_images->height);
|
||||||
$this->assertIdentical('http://google.com', $node->field_link->uri);
|
$this->assertIdentical('http://google.com', $node->field_link->uri);
|
||||||
$this->assertIdentical('Click Here', $node->field_link->title);
|
$this->assertIdentical('Click Here', $node->field_link->title);
|
||||||
|
// Test that an email field is migrated.
|
||||||
|
$this->assertSame('default@example.com', $node->field_email->value);
|
||||||
|
$this->assertSame('another@example.com', $node->field_email[1]->value);
|
||||||
|
|
||||||
$node = Node::load(2);
|
$node = Node::load(2);
|
||||||
$this->assertSame('en', $node->langcode->value);
|
$this->assertSame('en', $node->langcode->value);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue