Update to Drupal 8.2.2. For more information, see https://www.drupal.org/project/drupal/releases/8.2.2
This commit is contained in:
parent
23ffed3665
commit
507b45a0ed
378 changed files with 11434 additions and 5542 deletions
|
@ -16,7 +16,18 @@ process:
|
|||
timezone:
|
||||
plugin: user_update_7002
|
||||
source: timezone
|
||||
preferred_langcode: language
|
||||
langcode:
|
||||
plugin: user_langcode
|
||||
source: language
|
||||
fallback_to_site_default: false
|
||||
preferred_langcode:
|
||||
plugin: user_langcode
|
||||
source: language
|
||||
fallback_to_site_default: true
|
||||
preferred_admin_langcode:
|
||||
plugin: user_langcode
|
||||
source: language
|
||||
fallback_to_site_default: true
|
||||
init: init
|
||||
roles:
|
||||
plugin: migration
|
||||
|
@ -34,6 +45,8 @@ migration_dependencies:
|
|||
required:
|
||||
- d6_user_role
|
||||
optional:
|
||||
- language
|
||||
- default_language
|
||||
- d6_user_picture_file
|
||||
- user_picture_entity_display
|
||||
- user_picture_entity_form_display
|
||||
|
|
|
@ -9,11 +9,6 @@ process:
|
|||
-
|
||||
plugin: machine_name
|
||||
source: name
|
||||
-
|
||||
plugin: dedupe_entity
|
||||
entity_type: user_role
|
||||
field: id
|
||||
length: 32
|
||||
-
|
||||
plugin: user_update_8002
|
||||
label: name
|
||||
|
@ -26,15 +21,15 @@ process:
|
|||
'use PHP for block visibility': 'use PHP for settings'
|
||||
'administer site-wide contact form': 'administer contact forms'
|
||||
'post comments without approval': 'skip comment approval'
|
||||
'edit own blog entries' : 'edit own blog content'
|
||||
'edit any blog entry' : 'edit any blog content'
|
||||
'delete own blog entries' : 'delete own blog content'
|
||||
'delete any blog entry' : 'delete any blog content'
|
||||
'create forum topics' : 'create forum content'
|
||||
'delete any forum topic' : 'delete any forum content'
|
||||
'delete own forum topics' : 'delete own forum content'
|
||||
'edit any forum topic' : 'edit any forum content'
|
||||
'edit own forum topics' : 'edit own forum content'
|
||||
'edit own blog entries': 'edit own blog content'
|
||||
'edit any blog entry': 'edit any blog content'
|
||||
'delete own blog entries': 'delete own blog content'
|
||||
'delete any blog entry': 'delete any blog content'
|
||||
'create forum topics': 'create forum content'
|
||||
'delete any forum topic': 'delete any forum content'
|
||||
'delete own forum topics': 'delete own forum content'
|
||||
'edit any forum topic': 'edit any forum content'
|
||||
'edit own forum topics': 'edit own forum content'
|
||||
- plugin: system_update_7000
|
||||
- plugin: node_update_7008
|
||||
- plugin: flatten
|
||||
|
|
|
@ -15,9 +15,18 @@ process:
|
|||
login: login
|
||||
status: status
|
||||
timezone: timezone
|
||||
langcode: language
|
||||
preferred_langcode: language
|
||||
preferred_admin_langcode: language
|
||||
langcode:
|
||||
plugin: user_langcode
|
||||
source: language
|
||||
fallback_to_site_default: false
|
||||
preferred_langcode:
|
||||
plugin: user_langcode
|
||||
source: language
|
||||
fallback_to_site_default: true
|
||||
preferred_admin_langcode:
|
||||
plugin: user_langcode
|
||||
source: language
|
||||
fallback_to_site_default: true
|
||||
init: init
|
||||
roles:
|
||||
plugin: migration
|
||||
|
@ -38,6 +47,8 @@ migration_dependencies:
|
|||
- d7_user_role
|
||||
optional:
|
||||
- d7_file
|
||||
- language
|
||||
- default_language
|
||||
- user_picture_field_instance
|
||||
- user_picture_entity_display
|
||||
- user_picture_entity_form_display
|
||||
|
|
|
@ -9,11 +9,6 @@ process:
|
|||
-
|
||||
plugin: machine_name
|
||||
source: name
|
||||
-
|
||||
plugin: dedupe_entity
|
||||
entity_type: user_role
|
||||
field: id
|
||||
length: 32
|
||||
-
|
||||
plugin: user_update_8002
|
||||
label: name
|
||||
|
@ -26,15 +21,15 @@ process:
|
|||
'use PHP for block visibility': 'use PHP for settings'
|
||||
'administer site-wide contact form': 'administer contact forms'
|
||||
'post comments without approval': 'skip comment approval'
|
||||
'edit own blog entries' : 'edit own blog content'
|
||||
'edit any blog entry' : 'edit any blog content'
|
||||
'delete own blog entries' : 'delete own blog content'
|
||||
'delete any blog entry' : 'delete any blog content'
|
||||
'create forum topics' : 'create forum content'
|
||||
'delete any forum topic' : 'delete any forum content'
|
||||
'delete own forum topics' : 'delete own forum content'
|
||||
'edit any forum topic' : 'edit any forum content'
|
||||
'edit own forum topics' : 'edit own forum content'
|
||||
'edit own blog entries': 'edit own blog content'
|
||||
'edit any blog entry': 'edit any blog content'
|
||||
'delete own blog entries': 'delete own blog content'
|
||||
'delete any blog entry': 'delete any blog content'
|
||||
'create forum topics': 'create forum content'
|
||||
'delete any forum topic': 'delete any forum content'
|
||||
'delete own forum topics': 'delete own forum content'
|
||||
'edit any forum topic': 'edit any forum content'
|
||||
'edit own forum topics': 'edit own forum content'
|
||||
- plugin: flatten
|
||||
weight: weight
|
||||
destination:
|
||||
|
|
|
@ -416,6 +416,9 @@ class User extends ContentEntityBase implements UserInterface {
|
|||
static::$anonymousUser = new $class([
|
||||
'uid' => [LanguageInterface::LANGCODE_DEFAULT => 0],
|
||||
'name' => [LanguageInterface::LANGCODE_DEFAULT => ''],
|
||||
// Explicitly set the langcode to ensure that field definitions do not
|
||||
// need to be fetched to figure out a default.
|
||||
'langcode' => [LanguageInterface::LANGCODE_DEFAULT => LanguageInterface::LANGCODE_NOT_SPECIFIED]
|
||||
], $entity_type->id());
|
||||
}
|
||||
return clone static::$anonymousUser;
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\user\Plugin\migrate\process;
|
||||
|
||||
use Drupal\Core\Language\LanguageManager;
|
||||
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
|
||||
use Drupal\migrate\MigrateExecutableInterface;
|
||||
use Drupal\migrate\ProcessPluginBase;
|
||||
use Drupal\migrate\Row;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Provides a process plugin for the user langcode.
|
||||
*
|
||||
* @MigrateProcessPlugin(
|
||||
* id = "user_langcode"
|
||||
* )
|
||||
*/
|
||||
class UserLangcode extends ProcessPluginBase implements ContainerFactoryPluginInterface {
|
||||
|
||||
/**
|
||||
* The language manager.
|
||||
*
|
||||
* @var \Drupal\Core\Language\LanguageManager
|
||||
*/
|
||||
protected $languageManager;
|
||||
|
||||
/**
|
||||
* Constructs a UserLangcode object.
|
||||
*
|
||||
* @param array $configuration
|
||||
* Plugin configuration.
|
||||
* @param string $plugin_id
|
||||
* The plugin ID.
|
||||
* @param mixed $plugin_definition
|
||||
* The plugin definiiton.
|
||||
* @param \Drupal\Core\Language\LanguageManager $language_manager
|
||||
* The language manager service.
|
||||
*/
|
||||
public function __construct(array $configuration, $plugin_id, $plugin_definition, LanguageManager $language_manager) {
|
||||
parent::__construct($configuration, $plugin_id, $plugin_definition);
|
||||
$this->languageManager = $language_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
|
||||
return new static(
|
||||
$configuration,
|
||||
$plugin_id,
|
||||
$plugin_definition,
|
||||
$container->get('language_manager')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
|
||||
if (!isset($this->configuration['fallback_to_site_default'])) {
|
||||
$this->configuration['fallback_to_site_default'] = TRUE;
|
||||
}
|
||||
|
||||
// If the user's language is empty, it means the locale module was not
|
||||
// installed, so the user's langcode should be English and the user's
|
||||
// preferred_langcode and preferred_admin_langcode should fallback to the
|
||||
// default language.
|
||||
if (empty($value)) {
|
||||
if ($this->configuration['fallback_to_site_default']) {
|
||||
return $this->languageManager->getDefaultLanguage()->getId();
|
||||
}
|
||||
else {
|
||||
return 'en';
|
||||
}
|
||||
}
|
||||
// If the user's language does not exists, use the default language.
|
||||
elseif ($this->languageManager->getLanguage($value) === NULL) {
|
||||
return $this->languageManager->getDefaultLanguage()->getId();
|
||||
}
|
||||
|
||||
// If the langcode is a valid one, just return it.
|
||||
return $value;
|
||||
}
|
||||
|
||||
}
|
|
@ -21,7 +21,7 @@ class ProfileFieldValues extends DrupalSqlBase {
|
|||
public function query() {
|
||||
$query = $this->select('profile_values', 'pv')
|
||||
->distinct()
|
||||
->fields('pv', array('fid', 'uid'));
|
||||
->fields('pv', array('uid'));
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
|
|
@ -69,7 +69,15 @@ class Role extends DrupalSqlBase {
|
|||
->condition('rid', $rid)
|
||||
->execute()
|
||||
->fetchField();
|
||||
$row->setSourceProperty('permissions', explode(', ', $permissions));
|
||||
|
||||
// If a role has no permissions then set to an empty array. The role will
|
||||
// be migrated and given the default D8 permissions.
|
||||
if ($permissions) {
|
||||
$row->setSourceProperty('permissions', explode(', ', $permissions));
|
||||
}
|
||||
else {
|
||||
$row->setSourceProperty('permissions', []);
|
||||
}
|
||||
if (isset($this->filterPermissions[$rid])) {
|
||||
$row->setSourceProperty("filter_permissions:$rid", $this->filterPermissions[$rid]);
|
||||
}
|
||||
|
|
|
@ -100,6 +100,7 @@ class User extends DrupalSqlBase {
|
|||
'name' => $this->t('Username'),
|
||||
'pass' => $this->t('Password'),
|
||||
'mail' => $this->t('Email address'),
|
||||
'theme' => $this->t('Theme'),
|
||||
'signature' => $this->t('Signature'),
|
||||
'signature_format' => $this->t('Signature format'),
|
||||
'created' => $this->t('Registered timestamp'),
|
||||
|
|
|
@ -12,6 +12,11 @@ use Drupal\user\Entity\User;
|
|||
*/
|
||||
class MigrateUserProfileValuesTest extends MigrateDrupal6TestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['language'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
@ -19,6 +24,7 @@ class MigrateUserProfileValuesTest extends MigrateDrupal6TestBase {
|
|||
parent::setUp();
|
||||
|
||||
$this->executeMigrations([
|
||||
'language',
|
||||
'user_profile_field',
|
||||
'user_profile_field_instance',
|
||||
'user_profile_entity_display',
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
namespace Drupal\Tests\user\Kernel\Migrate\d6;
|
||||
|
||||
use Drupal\user\Entity\Role;
|
||||
use Drupal\user\RoleInterface;
|
||||
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
|
||||
use Drupal\migrate\Plugin\MigrateIdMapInterface;
|
||||
|
||||
/**
|
||||
* Upgrade user roles to user.role.*.yml.
|
||||
|
@ -21,29 +23,69 @@ class MigrateUserRoleTest extends MigrateDrupal6TestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Tests user role migration.
|
||||
* Helper function to perform assertions on a user role.
|
||||
*
|
||||
* @param string $id
|
||||
* The role ID.
|
||||
* @param string[] $permissions
|
||||
* An array of user permissions.
|
||||
* @param int $lookupId
|
||||
* The original numeric ID of the role in the source database.
|
||||
* @param \Drupal\migrate\Plugin\MigrateIdMapInterface $id_map
|
||||
* The map table plugin.
|
||||
*/
|
||||
public function testUserRole() {
|
||||
/** @var \Drupal\migrate\Plugin\MigrationInterface $migration */
|
||||
$id_map = $this->getMigration('d6_user_role')->getIdMap();
|
||||
$rid = 'anonymous';
|
||||
$anonymous = Role::load($rid);
|
||||
$this->assertSame($rid, $anonymous->id());
|
||||
$this->assertSame(array('migrate test anonymous permission', 'use text format filtered_html'), $anonymous->getPermissions());
|
||||
$this->assertSame(array($rid), $id_map->lookupDestinationId(array(1)));
|
||||
$rid = 'authenticated';
|
||||
$authenticated = Role::load($rid);
|
||||
$this->assertSame($rid, $authenticated->id());
|
||||
$this->assertSame(array('migrate test authenticated permission', 'use text format filtered_html'), $authenticated->getPermissions());
|
||||
$this->assertSame(array($rid), $id_map->lookupDestinationId(array(2)));
|
||||
$rid = 'migrate_test_role_1';
|
||||
$migrate_test_role_1 = Role::load($rid);
|
||||
$this->assertSame($rid, $migrate_test_role_1->id());
|
||||
$this->assertSame(array('migrate test role 1 test permission', 'use text format full_html', 'use text format php_code'), $migrate_test_role_1->getPermissions());
|
||||
$this->assertSame(array($rid), $id_map->lookupDestinationId(array(3)));
|
||||
$rid = 'migrate_test_role_2';
|
||||
$migrate_test_role_2 = Role::load($rid);
|
||||
$this->assertSame(array(
|
||||
protected function assertRole($id, array $permissions, $lookupId, MigrateIdMapInterface $id_map) {
|
||||
/** @var \Drupal\user\RoleInterface $role */
|
||||
$role = Role::load($id);
|
||||
$this->assertInstanceOf(RoleInterface::class, $role);
|
||||
$this->assertSame($permissions, $role->getPermissions());
|
||||
$this->assertSame([[$id]], $id_map->lookupDestinationIds(['rid' => $lookupId]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to test the migration of the user roles. The user roles
|
||||
* will be re-imported and the tests here will be repeated.
|
||||
*
|
||||
* @param \Drupal\migrate\Plugin\MigrateIdMapInterface $id_map
|
||||
* The map table plugin.
|
||||
*/
|
||||
protected function assertRoles(MigrateIdMapInterface $id_map) {
|
||||
|
||||
// The permissions for each role are found in the two tables in the Drupal 6
|
||||
// source database. One is the permission table and the other is the
|
||||
// filter_format table.
|
||||
$permissions = [
|
||||
// From permission table.
|
||||
'access content',
|
||||
'migrate test anonymous permission',
|
||||
// From filter_format tables.
|
||||
'use text format filtered_html'
|
||||
];
|
||||
$this->assertRole('anonymous', $permissions, 1, $id_map);
|
||||
|
||||
$permissions = [
|
||||
// From permission table.
|
||||
'access comments',
|
||||
'access content',
|
||||
'post comments',
|
||||
'skip comment approval',
|
||||
'migrate test authenticated permission',
|
||||
// From filter_format.
|
||||
'use text format filtered_html',
|
||||
];
|
||||
$this->assertRole('authenticated', $permissions, 2, $id_map);
|
||||
|
||||
$permissions = [
|
||||
// From permission table.
|
||||
'migrate test role 1 test permission',
|
||||
// From filter format.
|
||||
'use text format full_html',
|
||||
'use text format php_code'
|
||||
];
|
||||
$this->assertRole('migrate_test_role_1', $permissions, 3, $id_map);
|
||||
|
||||
$permissions = [
|
||||
// From permission table.
|
||||
'migrate test role 2 test permission',
|
||||
'use PHP for settings',
|
||||
'administer contact forms',
|
||||
|
@ -59,14 +101,66 @@ class MigrateUserRoleTest extends MigrateDrupal6TestBase {
|
|||
'edit own forum content',
|
||||
'administer nodes',
|
||||
'access content overview',
|
||||
// From filter format.
|
||||
'use text format php_code',
|
||||
), $migrate_test_role_2->getPermissions());
|
||||
$this->assertSame($rid, $migrate_test_role_2->id());
|
||||
$this->assertSame(array($rid), $id_map->lookupDestinationId(array(4)));
|
||||
$rid = 'migrate_test_role_3_that_is_long';
|
||||
$migrate_test_role_3 = Role::load($rid);
|
||||
$this->assertSame($rid, $migrate_test_role_3->id());
|
||||
$this->assertSame(array($rid), $id_map->lookupDestinationId(array(5)));
|
||||
];
|
||||
$this->assertRole('migrate_test_role_2', $permissions, 4, $id_map);
|
||||
|
||||
// The only permission for this role is a filter format.
|
||||
$permissions = ['use text format php_code'];
|
||||
$this->assertRole('migrate_test_role_3_that_is_longer_than_thirty_two_characters', $permissions, 5, $id_map);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests user role migration.
|
||||
*/
|
||||
public function testUserRole() {
|
||||
$id_map = $this->getMigration('d6_user_role')->getIdMap();
|
||||
$this->assertRoles($id_map);
|
||||
|
||||
// Test there are no duplicated roles.
|
||||
$roles = [
|
||||
'anonymous1',
|
||||
'authenticated1',
|
||||
'administrator1',
|
||||
'migrate_test_role_11',
|
||||
'migrate_test_role_21',
|
||||
'migrate_test_role_3_that_is_longer_than_thirty_two_characters1'
|
||||
];
|
||||
$this->assertEmpty(Role::loadMultiple($roles));
|
||||
|
||||
// Remove the map row for the migrate_test_role_1 role and rerun the
|
||||
// migration. This will re-import the migrate_test_role_1 role migration
|
||||
// again.
|
||||
$this->sourceDatabase->insert('role')
|
||||
->fields([
|
||||
'rid' => 6,
|
||||
'name' => 'migrate test role 4',
|
||||
])
|
||||
->execute();
|
||||
$this->sourceDatabase->insert('permission')
|
||||
->fields([
|
||||
'pid' => 7,
|
||||
'rid' => 6,
|
||||
'perm' => 'access content',
|
||||
'tid' => 0,
|
||||
])
|
||||
->execute();
|
||||
|
||||
$id_map->delete(['rid' => 3]);
|
||||
|
||||
$this->executeMigration('d6_user_role');
|
||||
|
||||
// Test there are no duplicated roles.
|
||||
$roles[] = 'migrate_test_role_41';
|
||||
$this->assertEmpty(Role::loadMultiple($roles));
|
||||
|
||||
// Test that the existing roles have not changed.
|
||||
$this->assertRoles($id_map);
|
||||
|
||||
// Test the migration of the new role, migrate_test_role_4.
|
||||
$permissions = ['access content'];
|
||||
$this->assertRole('migrate_test_role_4', $permissions, 6, $id_map);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,6 +19,11 @@ class MigrateUserTest extends MigrateDrupal6TestBase {
|
|||
|
||||
use FileMigrationTestTrait;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['language'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
@ -60,6 +65,7 @@ class MigrateUserTest extends MigrateDrupal6TestBase {
|
|||
file_put_contents($file->getFileUri(), file_get_contents('core/modules/simpletest/files/image-2.jpg'));
|
||||
$file->save();
|
||||
|
||||
$this->executeMigration('language');
|
||||
$this->migrateUsers();
|
||||
}
|
||||
|
||||
|
@ -91,28 +97,47 @@ class MigrateUserTest extends MigrateDrupal6TestBase {
|
|||
|
||||
/** @var \Drupal\user\UserInterface $user */
|
||||
$user = User::load($source->uid);
|
||||
$this->assertIdentical($source->uid, $user->id());
|
||||
$this->assertIdentical($source->name, $user->label());
|
||||
$this->assertIdentical($source->mail, $user->getEmail());
|
||||
$this->assertIdentical($source->created, $user->getCreatedTime());
|
||||
$this->assertIdentical($source->access, $user->getLastAccessedTime());
|
||||
$this->assertIdentical($source->login, $user->getLastLoginTime());
|
||||
$this->assertSame($source->uid, $user->id());
|
||||
$this->assertSame($source->name, $user->label());
|
||||
$this->assertSame($source->mail, $user->getEmail());
|
||||
$this->assertSame($source->created, $user->getCreatedTime());
|
||||
$this->assertSame($source->access, $user->getLastAccessedTime());
|
||||
$this->assertSame($source->login, $user->getLastLoginTime());
|
||||
$is_blocked = $source->status == 0;
|
||||
$this->assertIdentical($is_blocked, $user->isBlocked());
|
||||
$this->assertSame($is_blocked, $user->isBlocked());
|
||||
$expected_timezone_name = $source->timezone_name ?: $this->config('system.date')->get('timezone.default');
|
||||
$this->assertSame($expected_timezone_name, $user->getTimeZone());
|
||||
$this->assertSame($source->init, $user->getInitialEmail());
|
||||
$this->assertSame($roles, $user->getRoles());
|
||||
|
||||
// Ensure the user's langcode, preferred_langcode and
|
||||
// preferred_admin_langcode are valid.
|
||||
// $user->getPreferredLangcode() might fallback to default language if the
|
||||
// user preferred language is not configured on the site. We just want to
|
||||
// test if the value was imported correctly.
|
||||
$this->assertIdentical($source->language, $user->preferred_langcode->value);
|
||||
$expected_timezone_name = $source->timezone_name ?: $this->config('system.date')->get('timezone.default');
|
||||
$this->assertIdentical($expected_timezone_name, $user->getTimeZone());
|
||||
$this->assertIdentical($source->init, $user->getInitialEmail());
|
||||
$this->assertIdentical($roles, $user->getRoles());
|
||||
$language_manager = $this->container->get('language_manager');
|
||||
$default_langcode = $language_manager->getDefaultLanguage()->getId();
|
||||
if (empty($source->language)) {
|
||||
$this->assertSame('en', $user->langcode->value);
|
||||
$this->assertSame($default_langcode, $user->preferred_langcode->value);
|
||||
$this->assertSame($default_langcode, $user->preferred_admin_langcode->value);
|
||||
}
|
||||
elseif ($language_manager->getLanguage($source->language) === NULL) {
|
||||
$this->assertSame($default_langcode, $user->langcode->value);
|
||||
$this->assertSame($default_langcode, $user->preferred_langcode->value);
|
||||
$this->assertSame($default_langcode, $user->preferred_admin_langcode->value);
|
||||
}
|
||||
else {
|
||||
$this->assertSame($source->language, $user->langcode->value);
|
||||
$this->assertSame($source->language, $user->preferred_langcode->value);
|
||||
$this->assertSame($source->language, $user->preferred_admin_langcode->value);
|
||||
}
|
||||
|
||||
// We have one empty picture in the data so don't try load that.
|
||||
if (!empty($source->picture)) {
|
||||
// Test the user picture.
|
||||
$file = File::load($user->user_picture->target_id);
|
||||
$this->assertIdentical(basename($source->picture), $file->getFilename());
|
||||
$this->assertSame(basename($source->picture), $file->getFilename());
|
||||
}
|
||||
else {
|
||||
// Ensure the user does not have a picture.
|
||||
|
|
|
@ -56,6 +56,50 @@ class MigrateUserRoleTest extends MigrateDrupal7TestBase {
|
|||
$this->assertEntity('anonymous', 'anonymous user', 1);
|
||||
$this->assertEntity('authenticated', 'authenticated user', 2);
|
||||
$this->assertEntity('administrator', 'administrator', 3);
|
||||
// Test there are no duplicated roles.
|
||||
$roles = [
|
||||
'anonymous1',
|
||||
'authenticated1',
|
||||
'administrator1',
|
||||
];
|
||||
$this->assertEmpty(Role::loadMultiple($roles));
|
||||
|
||||
// Remove the map row for the administrator role and rerun the migration.
|
||||
// This will re-import the administrator role again.
|
||||
$id_map = $this->getMigration('d7_user_role')->getIdMap();
|
||||
$id_map->delete(['rid' => 3]);
|
||||
|
||||
$this->sourceDatabase->insert('role')
|
||||
->fields([
|
||||
'rid' => 4,
|
||||
'name' => 'test role',
|
||||
'weight' => 10,
|
||||
])
|
||||
->execute();
|
||||
$this->sourceDatabase->insert('role_permission')
|
||||
->fields([
|
||||
'rid' => 4,
|
||||
'permission' => 'access content',
|
||||
'module' => 'node',
|
||||
])
|
||||
->execute();
|
||||
$this->executeMigration('d7_user_role');
|
||||
|
||||
// Test there are no duplicated roles.
|
||||
$roles = [
|
||||
'anonymous1',
|
||||
'authenticated1',
|
||||
'administrator1',
|
||||
];
|
||||
$this->assertEmpty(Role::loadMultiple($roles));
|
||||
|
||||
// Test that the existing roles have not changed.
|
||||
$this->assertEntity('administrator', 'administrator', 3);
|
||||
$this->assertEntity('anonymous', 'anonymous user', 1);
|
||||
$this->assertEntity('authenticated', 'authenticated user', 2);
|
||||
|
||||
// Test the migration of the new role, test role.
|
||||
$this->assertEntity('test_role', 'test role', 4);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace Drupal\Tests\user\Kernel\Migrate\d7;
|
||||
|
||||
use Drupal\comment\Entity\CommentType;
|
||||
use Drupal\Core\Database\Database;
|
||||
use Drupal\node\Entity\NodeType;
|
||||
use Drupal\taxonomy\Entity\Vocabulary;
|
||||
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
|
||||
|
@ -25,6 +26,7 @@ class MigrateUserTest extends MigrateDrupal7TestBase {
|
|||
'datetime',
|
||||
'file',
|
||||
'image',
|
||||
'language',
|
||||
'link',
|
||||
'node',
|
||||
'system',
|
||||
|
@ -49,6 +51,7 @@ class MigrateUserTest extends MigrateDrupal7TestBase {
|
|||
$this->createType('test_content_type');
|
||||
Vocabulary::create(['vid' => 'test_vocabulary'])->save();
|
||||
$this->executeMigrations([
|
||||
'language',
|
||||
'user_picture_field',
|
||||
'user_picture_field_instance',
|
||||
'd7_user_role',
|
||||
|
@ -88,6 +91,8 @@ class MigrateUserTest extends MigrateDrupal7TestBase {
|
|||
* The user's email address.
|
||||
* @param string $password
|
||||
* The password for this user.
|
||||
* @param int $created
|
||||
* The user's creation time.
|
||||
* @param int $access
|
||||
* The last access time.
|
||||
* @param int $login
|
||||
|
@ -96,37 +101,59 @@ class MigrateUserTest extends MigrateDrupal7TestBase {
|
|||
* Whether or not the account is blocked.
|
||||
* @param string $langcode
|
||||
* The user account's language code.
|
||||
* @param string $timezone
|
||||
* The user account's timezone name.
|
||||
* @param string $init
|
||||
* The user's initial email address.
|
||||
* @param string[] $roles
|
||||
* Role IDs the user account is expected to have.
|
||||
* @param bool $has_picture
|
||||
* Whether the user is expected to have a picture attached.
|
||||
* @param int $field_integer
|
||||
* The value of the integer field.
|
||||
* @param bool $has_picture
|
||||
* Whether the user is expected to have a picture attached.
|
||||
*/
|
||||
protected function assertEntity($id, $label, $mail, $password, $access, $login, $blocked, $langcode, $init, array $roles = [RoleInterface::AUTHENTICATED_ID], $has_picture = FALSE, $field_integer = NULL) {
|
||||
protected function assertEntity($id, $label, $mail, $password, $created, $access, $login, $blocked, $langcode, $timezone, $init, $roles, $field_integer, $has_picture = FALSE) {
|
||||
/** @var \Drupal\user\UserInterface $user */
|
||||
$user = User::load($id);
|
||||
$this->assertTrue($user instanceof UserInterface);
|
||||
$this->assertIdentical($label, $user->label());
|
||||
$this->assertIdentical($mail, $user->getEmail());
|
||||
$this->assertIdentical($access, $user->getLastAccessedTime());
|
||||
$this->assertIdentical($login, $user->getLastLoginTime());
|
||||
$this->assertIdentical($blocked, $user->isBlocked());
|
||||
$this->assertSame($label, $user->label());
|
||||
$this->assertSame($mail, $user->getEmail());
|
||||
$this->assertSame($password, $user->getPassword());
|
||||
$this->assertSame($created, $user->getCreatedTime());
|
||||
$this->assertSame($access, $user->getLastAccessedTime());
|
||||
$this->assertSame($login, $user->getLastLoginTime());
|
||||
$this->assertNotSame($blocked, $user->isBlocked());
|
||||
|
||||
// Ensure the user's langcode, preferred_langcode and
|
||||
// preferred_admin_langcode are valid.
|
||||
// $user->getPreferredLangcode() might fallback to default language if the
|
||||
// user preferred language is not configured on the site. We just want to
|
||||
// test if the value was imported correctly.
|
||||
$this->assertIdentical($langcode, $user->langcode->value);
|
||||
$this->assertIdentical($langcode, $user->preferred_langcode->value);
|
||||
$this->assertIdentical($langcode, $user->preferred_admin_langcode->value);
|
||||
$this->assertIdentical($init, $user->getInitialEmail());
|
||||
$this->assertIdentical($roles, $user->getRoles());
|
||||
$this->assertIdentical($has_picture, !$user->user_picture->isEmpty());
|
||||
$this->assertIdentical($password, $user->getPassword());
|
||||
$language_manager = $this->container->get('language_manager');
|
||||
$default_langcode = $language_manager->getDefaultLanguage()->getId();
|
||||
if ($langcode == '') {
|
||||
$this->assertSame('en', $user->langcode->value);
|
||||
$this->assertSame($default_langcode, $user->preferred_langcode->value);
|
||||
$this->assertSame($default_langcode, $user->preferred_admin_langcode->value);
|
||||
}
|
||||
elseif ($language_manager->getLanguage($langcode) === NULL) {
|
||||
$this->assertSame($default_langcode, $user->langcode->value);
|
||||
$this->assertSame($default_langcode, $user->preferred_langcode->value);
|
||||
$this->assertSame($default_langcode, $user->preferred_admin_langcode->value);
|
||||
}
|
||||
else {
|
||||
$this->assertSame($langcode, $user->langcode->value);
|
||||
$this->assertSame($langcode, $user->preferred_langcode->value);
|
||||
$this->assertSame($langcode, $user->preferred_admin_langcode->value);
|
||||
}
|
||||
|
||||
$this->assertSame($timezone, $user->getTimeZone());
|
||||
$this->assertSame($init, $user->getInitialEmail());
|
||||
$this->assertSame($roles, $user->getRoles());
|
||||
$this->assertSame($has_picture, !$user->user_picture->isEmpty());
|
||||
if (!is_null($field_integer)) {
|
||||
$this->assertTrue($user->hasField('field_integer'));
|
||||
$this->assertEquals($field_integer, $user->field_integer->value);
|
||||
$this->assertEquals($field_integer[0], $user->field_integer->value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -134,22 +161,65 @@ class MigrateUserTest extends MigrateDrupal7TestBase {
|
|||
* Tests the Drupal 7 user to Drupal 8 migration.
|
||||
*/
|
||||
public function testUser() {
|
||||
$password = '$S$DGFZUE.FhrXbe4y52eC7p0ZVRGD/gOPtVctDlmC89qkujnBokAlJ';
|
||||
$this->assertEntity(2, 'Odo', 'odo@local.host', $password, '0', '0', FALSE, 'en', 'odo@local.host', [RoleInterface::AUTHENTICATED_ID], FALSE, 99);
|
||||
$users = Database::getConnection('default', 'migrate')
|
||||
->select('users', 'u')
|
||||
->fields('u')
|
||||
->condition('uid', 1, '>')
|
||||
->execute()
|
||||
->fetchAll();
|
||||
|
||||
// Ensure that the user can authenticate.
|
||||
$this->assertEquals(2, \Drupal::service('user.auth')->authenticate('Odo', 'a password'));
|
||||
// After authenticating the password will be rehashed because the password
|
||||
// stretching iteration count has changed from 15 in Drupal 7 to 16 in
|
||||
// Drupal 8.
|
||||
$user = User::load(2);
|
||||
$rehash = $user->getPassword();
|
||||
$this->assertNotEquals($password, $rehash);
|
||||
foreach ($users as $source) {
|
||||
$rids = Database::getConnection('default', 'migrate')
|
||||
->select('users_roles', 'ur')
|
||||
->fields('ur', array('rid'))
|
||||
->condition('ur.uid', $source->uid)
|
||||
->execute()
|
||||
->fetchCol();
|
||||
$roles = array(RoleInterface::AUTHENTICATED_ID);
|
||||
$id_map = $this->getMigration('d7_user_role')->getIdMap();
|
||||
foreach ($rids as $rid) {
|
||||
$role = $id_map->lookupDestinationId(array($rid));
|
||||
$roles[] = reset($role);
|
||||
}
|
||||
|
||||
// Authenticate again and there should be no re-hash.
|
||||
$this->assertEquals(2, \Drupal::service('user.auth')->authenticate('Odo', 'a password'));
|
||||
$user = User::load(2);
|
||||
$this->assertEquals($rehash, $user->getPassword());
|
||||
$field_integer = Database::getConnection('default', 'migrate')
|
||||
->select('field_data_field_integer', 'fi')
|
||||
->fields('fi', array('field_integer_value'))
|
||||
->condition('fi.entity_id', $source->uid)
|
||||
->execute()
|
||||
->fetchCol();
|
||||
$field_integer = !empty($field_integer) ? $field_integer : NULL;
|
||||
|
||||
$this->assertEntity(
|
||||
$source->uid,
|
||||
$source->name,
|
||||
$source->mail,
|
||||
$source->pass,
|
||||
$source->created,
|
||||
$source->access,
|
||||
$source->login,
|
||||
$source->status,
|
||||
$source->language,
|
||||
$source->timezone,
|
||||
$source->init,
|
||||
$roles,
|
||||
$field_integer
|
||||
);
|
||||
|
||||
// Ensure that the user can authenticate.
|
||||
$this->assertEquals($source->uid, $this->container->get('user.auth')->authenticate($source->name, 'a password'));
|
||||
// After authenticating the password will be rehashed because the password
|
||||
// stretching iteration count has changed from 15 in Drupal 7 to 16 in
|
||||
// Drupal 8.
|
||||
$user = User::load($source->uid);
|
||||
$rehash = $user->getPassword();
|
||||
$this->assertNotEquals($source->pass, $rehash);
|
||||
|
||||
// Authenticate again and there should be no re-hash.
|
||||
$this->assertEquals($source->uid, $this->container->get('user.auth')->authenticate($source->name, 'a password'));
|
||||
$user = User::load($source->uid);
|
||||
$this->assertEquals($rehash, $user->getPassword());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,129 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Kernel\Plugin\migrate\source;
|
||||
|
||||
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
|
||||
|
||||
/**
|
||||
* Tests the profile_field source plugin.
|
||||
*
|
||||
* @covers \Drupal\user\Plugin\migrate\source\ProfileField
|
||||
* @group user
|
||||
*/
|
||||
class ProfileFieldTest extends MigrateSqlSourceTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['user', 'migrate_drupal'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function providerSource() {
|
||||
$tests = [
|
||||
[
|
||||
'source_data' => [],
|
||||
'expected_data' => [],
|
||||
],
|
||||
];
|
||||
|
||||
$profile_fields = [
|
||||
[
|
||||
'fid' => 1,
|
||||
'title' => 'First name',
|
||||
'name' => 'profile_first_name',
|
||||
'explanation' => 'First name user',
|
||||
'category' => 'profile',
|
||||
'page' => '',
|
||||
'type' => 'textfield',
|
||||
'weight' => 0,
|
||||
'required' => 1,
|
||||
'register' => 0,
|
||||
'visibility' => 2,
|
||||
'autocomplete' => 0,
|
||||
'options' => '',
|
||||
],
|
||||
[
|
||||
'fid' => 2,
|
||||
'title' => 'Last name',
|
||||
'name' => 'profile_last_name',
|
||||
'explanation' => 'Last name user',
|
||||
'category' => 'profile',
|
||||
'page' => '',
|
||||
'type' => 'textfield',
|
||||
'weight' => 0,
|
||||
'required' => 0,
|
||||
'register' => 0,
|
||||
'visibility' => 2,
|
||||
'autocomplete' => 0,
|
||||
'options' => '',
|
||||
],
|
||||
[
|
||||
'fid' => 3,
|
||||
'title' => 'Policy',
|
||||
'name' => 'profile_policy',
|
||||
'explanation' => 'A checkbox that say if you accept policy of website',
|
||||
'category' => 'profile',
|
||||
'page' => '',
|
||||
'type' => 'checkbox',
|
||||
'weight' => 0,
|
||||
'required' => 1,
|
||||
'register' => 1,
|
||||
'visibility' => 2,
|
||||
'autocomplete' => 0,
|
||||
'options' => '',
|
||||
],
|
||||
[
|
||||
'fid' => 4,
|
||||
'title' => 'Color',
|
||||
'name' => 'profile_color',
|
||||
'explanation' => 'A selection that allows user to select a color',
|
||||
'category' => 'profile',
|
||||
'page' => '',
|
||||
'type' => 'selection',
|
||||
'weight' => 0,
|
||||
'required' => 0,
|
||||
'register' => 0,
|
||||
'visibility' => 2,
|
||||
'autocomplete' => 0,
|
||||
'options' => "red\nblue\ngreen",
|
||||
],
|
||||
];
|
||||
|
||||
$tests[0]['source_data']['profile_fields'] = $profile_fields;
|
||||
|
||||
// Profile values are merged with pre-set options of a "selection" field.
|
||||
$tests[0]['source_data']['profile_values'] = [
|
||||
[
|
||||
'fid' => 4,
|
||||
'uid' => 1,
|
||||
'value' => 'yellow',
|
||||
]
|
||||
];
|
||||
|
||||
// Expected options are:
|
||||
// for "checkbox" fields - array with NULL options
|
||||
// for "selection" fields - options in both keys and values
|
||||
$expected_field_options = [
|
||||
'',
|
||||
'',
|
||||
[NULL, NULL],
|
||||
[
|
||||
'red' => 'red',
|
||||
'blue' => 'blue',
|
||||
'green' => 'green',
|
||||
'yellow' => 'yellow',
|
||||
]
|
||||
];
|
||||
|
||||
$tests[0]['expected_data'] = $profile_fields;
|
||||
|
||||
foreach ($tests[0]['expected_data'] as $delta => $row) {
|
||||
$tests[0]['expected_data'][$delta]['options'] = $expected_field_options[$delta];
|
||||
}
|
||||
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Kernel\Plugin\migrate\source;
|
||||
|
||||
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
|
||||
|
||||
/**
|
||||
* Tests the user_picture_instance source plugin.
|
||||
*
|
||||
* @covers \Drupal\user\Plugin\migrate\source\UserPictureInstance
|
||||
* @group user
|
||||
*/
|
||||
class UserPictureInstanceTest extends MigrateSqlSourceTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['user', 'migrate_drupal'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function providerSource() {
|
||||
$tests = [];
|
||||
|
||||
// The source data.
|
||||
$tests[0]['source_data']['variable'] = [
|
||||
[
|
||||
'name' => 'file_directory',
|
||||
'value' => serialize(NULL),
|
||||
],
|
||||
[
|
||||
'name' => 'user_picture_file_size',
|
||||
'value' => serialize(128),
|
||||
],
|
||||
[
|
||||
'name' => 'user_picture_dimensions',
|
||||
'value' => serialize('128x128'),
|
||||
],
|
||||
];
|
||||
|
||||
// The expected results.
|
||||
$tests[0]['expected_data'] = [
|
||||
[
|
||||
'id' => '',
|
||||
'file_directory' => 'pictures',
|
||||
'max_filesize' => '128KB',
|
||||
'max_resolution' => '128x128',
|
||||
],
|
||||
];
|
||||
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,57 +1,44 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Unit\Migrate\d6;
|
||||
namespace Drupal\Tests\user\Kernel\Plugin\migrate\source\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
||||
use Drupal\user\Plugin\migrate\source\d6\ProfileFieldValues;
|
||||
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
|
||||
|
||||
/**
|
||||
* Tests the d6_profile_field_values source plugin.
|
||||
*
|
||||
* @covers \Drupal\user\Plugin\migrate\source\d6\ProfileFieldValues
|
||||
* @group user
|
||||
*/
|
||||
class ProfileFieldValuesTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
const PLUGIN_CLASS = ProfileFieldValues::class;
|
||||
|
||||
protected $migrationConfiguration = array(
|
||||
'id' => 'test',
|
||||
'source' => array(
|
||||
'plugin' => 'd6_profile_field_values',
|
||||
),
|
||||
);
|
||||
|
||||
protected $expectedResults = array(
|
||||
array(
|
||||
'fid' => '8',
|
||||
'profile_color' => array('red'),
|
||||
'uid' => '2',
|
||||
),
|
||||
array(
|
||||
'fid' => '9',
|
||||
'profile_biography' => array('Lorem ipsum dolor sit amet...'),
|
||||
'uid' => '2',
|
||||
),
|
||||
);
|
||||
class ProfileFieldValuesTest extends MigrateSqlSourceTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
$this->databaseContents['profile_values'] = array(
|
||||
array(
|
||||
public static $modules = ['user', 'migrate_drupal'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function providerSource() {
|
||||
$tests = [];
|
||||
|
||||
// The source data.
|
||||
$tests[0]['source_data']['profile_values'] = [
|
||||
[
|
||||
'fid' => '8',
|
||||
'uid' => '2',
|
||||
'value' => 'red',
|
||||
),
|
||||
array(
|
||||
],
|
||||
[
|
||||
'fid' => '9',
|
||||
'uid' => '2',
|
||||
'value' => 'Lorem ipsum dolor sit amet...',
|
||||
),
|
||||
);
|
||||
$this->databaseContents['profile_fields'] = array(
|
||||
array(
|
||||
],
|
||||
];
|
||||
|
||||
$tests[0]['source_data']['profile_fields'] = [
|
||||
[
|
||||
'fid' => '8',
|
||||
'title' => 'Favorite color',
|
||||
'name' => 'profile_color',
|
||||
|
@ -65,8 +52,8 @@ class ProfileFieldValuesTest extends MigrateSqlSourceTestCase {
|
|||
'visibility' => '2',
|
||||
'autocomplete' => '1',
|
||||
'options' => '',
|
||||
),
|
||||
array(
|
||||
],
|
||||
[
|
||||
'fid' => '9',
|
||||
'title' => 'Biography',
|
||||
'name' => 'profile_biography',
|
||||
|
@ -80,9 +67,19 @@ class ProfileFieldValuesTest extends MigrateSqlSourceTestCase {
|
|||
'visibility' => '2',
|
||||
'autocomplete' => '0',
|
||||
'options' => '',
|
||||
),
|
||||
);
|
||||
parent::setUp();
|
||||
],
|
||||
];
|
||||
|
||||
// The expected results.
|
||||
$tests[0]['expected_data'] = [
|
||||
[
|
||||
'profile_color' => ['red'],
|
||||
'profile_biography' => ['Lorem ipsum dolor sit amet...'],
|
||||
'uid' => '2',
|
||||
],
|
||||
];
|
||||
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Kernel\Plugin\migrate\source\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
|
||||
|
||||
/**
|
||||
* Tests the d6_user_role source plugin.
|
||||
*
|
||||
* @covers \Drupal\user\Plugin\migrate\source\d6\Role
|
||||
* @group user
|
||||
*/
|
||||
class RoleTest extends MigrateSqlSourceTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['user', 'migrate_drupal'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function providerSource() {
|
||||
$tests = [
|
||||
[
|
||||
'source_data' => [],
|
||||
'expected_data' => [],
|
||||
],
|
||||
];
|
||||
|
||||
$roles = [
|
||||
[
|
||||
'rid' => 1,
|
||||
'name' => 'anonymous user',
|
||||
'permissions' => [
|
||||
'access content',
|
||||
],
|
||||
],
|
||||
[
|
||||
'rid' => 2,
|
||||
'name' => 'authenticated user',
|
||||
'permissions' => [
|
||||
'access comments',
|
||||
'access content',
|
||||
'post comments',
|
||||
'post comments without approval',
|
||||
],
|
||||
],
|
||||
[
|
||||
'rid' => 3,
|
||||
'name' => 'administrator',
|
||||
'permissions' => [
|
||||
'access comments',
|
||||
'administer comments',
|
||||
'post comments',
|
||||
'post comments without approval',
|
||||
'access content',
|
||||
'administer content types',
|
||||
'administer nodes',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
// The source data.
|
||||
foreach ($roles as $role) {
|
||||
$tests[0]['source_data']['permission'][] = [
|
||||
'rid' => $role['rid'],
|
||||
'perm' => implode(', ', $role['permissions']),
|
||||
];
|
||||
unset($role['permissions']);
|
||||
$tests[0]['source_data']['role'][] = $role;
|
||||
}
|
||||
|
||||
$tests[0]['source_data']['filter_formats'] = [
|
||||
[
|
||||
'format' => 1,
|
||||
'roles' => '',
|
||||
],
|
||||
];
|
||||
|
||||
// The expected results.
|
||||
$tests[0]['expected_data'] = $roles;
|
||||
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Kernel\Plugin\migrate\source\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
|
||||
|
||||
/**
|
||||
* Tests the d6_user_picture_file source plugin.
|
||||
*
|
||||
* @covers \Drupal\user\Plugin\migrate\source\d6\UserPictureFile
|
||||
* @group user
|
||||
*/
|
||||
class UserPictureFileTest extends MigrateSqlSourceTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['user', 'migrate_drupal'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function providerSource() {
|
||||
$tests = [];
|
||||
|
||||
// The source data.
|
||||
$tests[0]['source_data']['users'] = [
|
||||
[
|
||||
'uid' => '2',
|
||||
'picture' => 'core/modules/simpletest/files/image-test.jpg',
|
||||
],
|
||||
[
|
||||
'uid' => '15',
|
||||
'picture' => '',
|
||||
],
|
||||
];
|
||||
|
||||
// The expected results.
|
||||
$tests[0]['expected_data'] = [
|
||||
[
|
||||
'uid' => '2',
|
||||
'picture' => 'core/modules/simpletest/files/image-test.jpg',
|
||||
],
|
||||
];
|
||||
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Kernel\Plugin\migrate\source\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
|
||||
|
||||
/**
|
||||
* Tests the d6_user_picture source plugin.
|
||||
*
|
||||
* @covers \Drupal\user\Plugin\migrate\source\d6\UserPicture
|
||||
* @group user
|
||||
*/
|
||||
class UserPictureTest extends MigrateSqlSourceTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['user', 'migrate_drupal'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function providerSource() {
|
||||
$tests = [];
|
||||
|
||||
// The source data.
|
||||
$tests[0]['source_data']['users'] = [
|
||||
[
|
||||
'uid' => 1,
|
||||
'access' => 1382835435,
|
||||
'picture' => 'sites/default/files/pictures/picture-1.jpg',
|
||||
],
|
||||
[
|
||||
'uid' => 2,
|
||||
'access' => 1382835436,
|
||||
'picture' => 'sites/default/files/pictures/picture-2.jpg',
|
||||
],
|
||||
];
|
||||
|
||||
// User picture data model is identical in source input and output.
|
||||
$tests[0]['expected_data'] = $tests[0]['source_data']['users'];
|
||||
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Kernel\Plugin\migrate\source\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
|
||||
|
||||
/**
|
||||
* Tests the d6_user source plugin.
|
||||
*
|
||||
* @covers \Drupal\user\Plugin\migrate\source\d6\User
|
||||
* @group user
|
||||
*/
|
||||
class UserTest extends MigrateSqlSourceTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['user', 'migrate_drupal'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function providerSource() {
|
||||
$tests = [];
|
||||
|
||||
// The source data.
|
||||
$tests[0]['source_data']['users'] = [
|
||||
[
|
||||
'uid' => 2,
|
||||
'name' => 'admin',
|
||||
'pass' => '1234',
|
||||
'mail' => 'admin@example.com',
|
||||
'theme' => '',
|
||||
'signature' => '',
|
||||
'signature_format' => 0,
|
||||
'created' => 1279402616,
|
||||
'access' => 1322981278,
|
||||
'login' => 1322699994,
|
||||
'status' => 0,
|
||||
'timezone' => 'America/Lima',
|
||||
'language' => 'en',
|
||||
// @todo Add the file when needed.
|
||||
'picture' => 'sites/default/files/pictures/picture-1.jpg',
|
||||
'init' => 'admin@example.com',
|
||||
'data' => NULL,
|
||||
],
|
||||
[
|
||||
'uid' => 4,
|
||||
'name' => 'alice',
|
||||
// @todo d6 hash?
|
||||
'pass' => '1234',
|
||||
'mail' => 'alice@example.com',
|
||||
'theme' => '',
|
||||
'signature' => '',
|
||||
'signature_format' => 0,
|
||||
'created' => 1322981368,
|
||||
'access' => 1322982419,
|
||||
'login' => 132298140,
|
||||
'status' => 0,
|
||||
'timezone' => 'America/Lima',
|
||||
'language' => 'en',
|
||||
'picture' => '',
|
||||
'init' => 'alice@example.com',
|
||||
'data' => NULL,
|
||||
],
|
||||
];
|
||||
|
||||
// getDatabase() will not create empty tables, so we need to insert data
|
||||
// even if it's irrelevant to the test.
|
||||
$tests[0]['source_data']['users_roles'] = [
|
||||
[
|
||||
'uid' => 99,
|
||||
'rid' => 99,
|
||||
],
|
||||
];
|
||||
|
||||
// The expected results.
|
||||
$tests[0]['expected_data'] = $tests[0]['source_data']['users'];
|
||||
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Kernel\Plugin\migrate\source\d7;
|
||||
|
||||
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
|
||||
|
||||
/**
|
||||
* Tests the d7_user source plugin.
|
||||
*
|
||||
* @covers \Drupal\user\Plugin\migrate\source\d7\User
|
||||
* @group user
|
||||
*/
|
||||
class UserTest extends MigrateSqlSourceTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['user', 'migrate_drupal'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function providerSource() {
|
||||
$tests = [];
|
||||
|
||||
// The source data.
|
||||
$tests[0]['source_data']['field_config_instance'] = [
|
||||
[
|
||||
'id' => '33',
|
||||
'field_id' => '11',
|
||||
'field_name' => 'field_file',
|
||||
'entity_type' => 'user',
|
||||
'bundle' => 'user',
|
||||
'data' => 'a:0:{}',
|
||||
'deleted' => '0',
|
||||
],
|
||||
];
|
||||
$tests[0]['source_data']['field_data_field_file'] = [
|
||||
[
|
||||
'entity_type' => 'user',
|
||||
'bundle' => 'user',
|
||||
'deleted' => 0,
|
||||
'entity_id' => 2,
|
||||
'revision_id' => NULL,
|
||||
'language' => 'und',
|
||||
'delta' => 0,
|
||||
'field_file_fid' => 99,
|
||||
'field_file_display' => 1,
|
||||
'field_file_description' => 'None',
|
||||
],
|
||||
];
|
||||
$tests[0]['source_data']['role'] = [
|
||||
[
|
||||
'rid' => 2,
|
||||
'name' => 'authenticated user',
|
||||
'weight' => 0,
|
||||
],
|
||||
];
|
||||
$tests[0]['source_data']['users'] = [
|
||||
[
|
||||
'uid' => '2',
|
||||
'name' => 'Odo',
|
||||
'pass' => '$S$DVpvPItXvnsmF3giVEe7Jy2lG.SCoEs8uKwpHsyPvdeNAaNZYxZ8',
|
||||
'mail' => 'odo@local.host',
|
||||
'theme' => '',
|
||||
'signature' => '',
|
||||
'signature_format' => 'filtered_html',
|
||||
'created' => '1432750741',
|
||||
'access' => '0',
|
||||
'login' => '0',
|
||||
'status' => '1',
|
||||
'timezone' => 'America/Chicago',
|
||||
'language' => '',
|
||||
'picture' => '0',
|
||||
'init' => 'odo@local.host',
|
||||
'data' => 'a:1:{s:7:"contact";i:1;}',
|
||||
],
|
||||
];
|
||||
$tests[0]['source_data']['users_roles'] = [
|
||||
[
|
||||
'uid' => 2,
|
||||
'rid' => 2,
|
||||
],
|
||||
];
|
||||
|
||||
// The expected results.
|
||||
$tests[0]['expected_data'] = [
|
||||
[
|
||||
'uid' => '2',
|
||||
'name' => 'Odo',
|
||||
'pass' => '$S$DVpvPItXvnsmF3giVEe7Jy2lG.SCoEs8uKwpHsyPvdeNAaNZYxZ8',
|
||||
'mail' => 'odo@local.host',
|
||||
'signature' => '',
|
||||
'signature_format' => 'filtered_html',
|
||||
'created' => '1432750741',
|
||||
'access' => '0',
|
||||
'login' => '0',
|
||||
'status' => '1',
|
||||
'timezone' => 'America/Chicago',
|
||||
'language' => '',
|
||||
'picture' => '0',
|
||||
'init' => 'odo@local.host',
|
||||
'roles' => [2],
|
||||
'data' => [
|
||||
'contact' => 1,
|
||||
],
|
||||
'field_file' => [
|
||||
[
|
||||
'fid' => 99,
|
||||
'display' => 1,
|
||||
'description' => 'None',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Unit\Migrate;
|
||||
|
||||
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
||||
|
||||
/**
|
||||
* Tests profile_field source plugin.
|
||||
*
|
||||
* @group user
|
||||
*/
|
||||
class ProfileFieldTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
const PLUGIN_CLASS = 'Drupal\user\Plugin\migrate\source\ProfileField';
|
||||
|
||||
protected $migrationConfiguration = [
|
||||
'id' => 'test_profile_fields',
|
||||
'source' => [
|
||||
'plugin' => 'd6_profile_field',
|
||||
],
|
||||
];
|
||||
|
||||
protected $expectedResults = [
|
||||
[
|
||||
'fid' => 1,
|
||||
'title' => 'First name',
|
||||
'name' => 'profile_first_name',
|
||||
'explanation' => 'First name user',
|
||||
'category' => 'profile',
|
||||
'page' => '',
|
||||
'type' => 'textfield',
|
||||
'weight' => 0,
|
||||
'required' => 1,
|
||||
'register' => 0,
|
||||
'visibility' => 2,
|
||||
'autocomplete' => 0,
|
||||
'options' => [],
|
||||
],
|
||||
[
|
||||
'fid' => 2,
|
||||
'title' => 'Last name',
|
||||
'name' => 'profile_last_name',
|
||||
'explanation' => 'Last name user',
|
||||
'category' => 'profile',
|
||||
'page' => '',
|
||||
'type' => 'textfield',
|
||||
'weight' => 0,
|
||||
'required' => 0,
|
||||
'register' => 0,
|
||||
'visibility' => 2,
|
||||
'autocomplete' => 0,
|
||||
'options' => [],
|
||||
],
|
||||
[
|
||||
'fid' => 3,
|
||||
'title' => 'Policy',
|
||||
'name' => 'profile_policy',
|
||||
'explanation' => 'A checkbox that say if you accept policy of website',
|
||||
'category' => 'profile',
|
||||
'page' => '',
|
||||
'type' => 'checkbox',
|
||||
'weight' => 0,
|
||||
'required' => 1,
|
||||
'register' => 1,
|
||||
'visibility' => 2,
|
||||
'autocomplete' => 0,
|
||||
'options' => [],
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Prepopulate contents with results.
|
||||
*/
|
||||
protected function setUp() {
|
||||
$this->databaseContents['profile_fields'] = $this->expectedResults;
|
||||
foreach ($this->databaseContents['profile_fields'] as &$row) {
|
||||
$row['options'] = serialize([]);
|
||||
}
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Unit\Migrate;
|
||||
|
||||
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
||||
use Drupal\user\Plugin\migrate\source\UserPictureInstance;
|
||||
|
||||
/**
|
||||
* Tests user_picture_instance source plugin.
|
||||
*
|
||||
* @group user
|
||||
*/
|
||||
class UserPictureInstanceTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
const PLUGIN_CLASS = UserPictureInstance::class;
|
||||
|
||||
protected $migrationConfiguration = [
|
||||
'id' => 'test',
|
||||
'source' => [
|
||||
'plugin' => 'user_picture_instance',
|
||||
],
|
||||
];
|
||||
|
||||
protected $expectedResults = array(
|
||||
array(
|
||||
'id' => '',
|
||||
'file_directory' => 'pictures',
|
||||
'max_filesize' => '128KB',
|
||||
'max_resolution' => '128x128',
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
$this->databaseContents['variable'] = array(
|
||||
array(
|
||||
'name' => 'file_directory',
|
||||
'value' => serialize(NULL),
|
||||
),
|
||||
array(
|
||||
'name' => 'user_picture_file_size',
|
||||
'value' => serialize(128),
|
||||
),
|
||||
array(
|
||||
'name' => 'user_picture_dimensions',
|
||||
'value' => serialize('128x128'),
|
||||
),
|
||||
);
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Unit\Migrate\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
||||
|
||||
/**
|
||||
* Tests D6 role source plugin.
|
||||
*
|
||||
* @group user
|
||||
*/
|
||||
class RoleTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
const PLUGIN_CLASS = 'Drupal\user\Plugin\migrate\source\d6\Role';
|
||||
|
||||
protected $migrationConfiguration = array(
|
||||
'id' => 'test',
|
||||
'source' => array(
|
||||
'plugin' => 'd6_user_role',
|
||||
),
|
||||
);
|
||||
|
||||
protected $expectedResults = array(
|
||||
array(
|
||||
'rid' => 1,
|
||||
'name' => 'anonymous user',
|
||||
'permissions' => array(
|
||||
'access content',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'rid' => 2,
|
||||
'name' => 'authenticated user',
|
||||
'permissions' => array(
|
||||
'access comments',
|
||||
'access content',
|
||||
'post comments',
|
||||
'post comments without approval',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'rid' => 3,
|
||||
'name' => 'administrator',
|
||||
'permissions' => array(
|
||||
'access comments',
|
||||
'administer comments',
|
||||
'post comments',
|
||||
'post comments without approval',
|
||||
'access content',
|
||||
'administer content types',
|
||||
'administer nodes',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
foreach ($this->expectedResults as $row) {
|
||||
$this->databaseContents['permission'][] = array(
|
||||
'perm' => implode(', ', $row['permissions']),
|
||||
'rid' => $row['rid'],
|
||||
);
|
||||
unset($row['permissions']);
|
||||
$this->databaseContents['role'][] = $row;
|
||||
}
|
||||
$this->databaseContents['filter_formats'][] = array(
|
||||
'format' => 1,
|
||||
'roles' => '',
|
||||
);
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Unit\Migrate\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
||||
use Drupal\user\Plugin\migrate\source\d6\UserPictureFile;
|
||||
|
||||
/**
|
||||
* Tests the d6_user_picture_file source plugin.
|
||||
*
|
||||
* @group user
|
||||
*/
|
||||
class UserPictureFileTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
const PLUGIN_CLASS = UserPictureFile::class;
|
||||
|
||||
protected $migrationConfiguration = array(
|
||||
'id' => 'test',
|
||||
'source' => array(
|
||||
'plugin' => 'd6_user_picture_file',
|
||||
),
|
||||
);
|
||||
|
||||
protected $expectedResults = array(
|
||||
array(
|
||||
'uid' => '2',
|
||||
'picture' => 'core/modules/simpletest/files/image-test.jpg',
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
$this->databaseContents['users'] = array(
|
||||
array(
|
||||
'uid' => '2',
|
||||
'picture' => 'core/modules/simpletest/files/image-test.jpg',
|
||||
),
|
||||
array(
|
||||
'uid' => '15',
|
||||
'picture' => '',
|
||||
),
|
||||
);
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Unit\Migrate\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
||||
|
||||
/**
|
||||
* Tests D6 user picture source plugin.
|
||||
*
|
||||
* @group user
|
||||
*/
|
||||
class UserPictureTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
const PLUGIN_CLASS = 'Drupal\user\Plugin\migrate\source\d6\UserPicture';
|
||||
|
||||
protected $migrationConfiguration = array(
|
||||
'id' => 'test_user_picture',
|
||||
'source' => array(
|
||||
'plugin' => 'd6_user_picture',
|
||||
),
|
||||
);
|
||||
|
||||
protected $expectedResults = array(
|
||||
array(
|
||||
'uid' => 1,
|
||||
'access' => 1382835435,
|
||||
'picture' => 'sites/default/files/pictures/picture-1.jpg',
|
||||
),
|
||||
array(
|
||||
'uid' => 2,
|
||||
'access' => 1382835436,
|
||||
'picture' => 'sites/default/files/pictures/picture-2.jpg',
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
$this->databaseContents['users'] = $this->expectedResults;
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,83 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Unit\Migrate\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
||||
|
||||
/**
|
||||
* Tests D6 user source plugin.
|
||||
*
|
||||
* @group user
|
||||
*/
|
||||
class UserTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
const PLUGIN_CLASS = 'Drupal\user\Plugin\migrate\source\d6\User';
|
||||
|
||||
protected $migrationConfiguration = array(
|
||||
'id' => 'test',
|
||||
'source' => array(
|
||||
'plugin' => 'd6_user',
|
||||
),
|
||||
);
|
||||
|
||||
protected $expectedResults = array(
|
||||
array(
|
||||
'uid' => 2,
|
||||
'name' => 'admin',
|
||||
// @todo d6 hash?
|
||||
'pass' => '1234',
|
||||
'mail' => 'admin@example.com',
|
||||
'theme' => '',
|
||||
'signature' => '',
|
||||
'signature_format' => 0,
|
||||
'created' => 1279402616,
|
||||
'access' => 1322981278,
|
||||
'login' => 1322699994,
|
||||
'status' => 0,
|
||||
'timezone' => 'America/Lima',
|
||||
'language' => 'en',
|
||||
// @todo Add the file when needed.
|
||||
'picture' => 'sites/default/files/pictures/picture-1.jpg',
|
||||
'init' => 'admin@example.com',
|
||||
'data' => NULL,
|
||||
),
|
||||
array(
|
||||
'uid' => 4,
|
||||
'name' => 'alice',
|
||||
// @todo d6 hash?
|
||||
'pass' => '1234',
|
||||
'mail' => 'alice@example.com',
|
||||
'theme' => '',
|
||||
'signature' => '',
|
||||
'signature_format' => 0,
|
||||
'created' => 1322981368,
|
||||
'access' => 1322982419,
|
||||
'login' => 132298140,
|
||||
'status' => 0,
|
||||
'timezone' => 'America/Lima',
|
||||
'language' => 'en',
|
||||
'picture' => '',
|
||||
'init' => 'alice@example.com',
|
||||
'data' => NULL,
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
foreach ($this->expectedResults as $k => $row) {
|
||||
$this->databaseContents['users'][$k] = $row;
|
||||
}
|
||||
// getDatabase() will not create empty tables, so we need to insert data
|
||||
// even if it's irrelevant to the test.
|
||||
$this->databaseContents['users_roles'] = array(
|
||||
array(
|
||||
'uid' => 99,
|
||||
'rid' => 99,
|
||||
),
|
||||
);
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,112 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\user\Unit\Plugin\migrate\source\d7;
|
||||
|
||||
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
||||
|
||||
/**
|
||||
* Tests D7 user source plugin.
|
||||
*
|
||||
* @group user
|
||||
*/
|
||||
class UserTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
const PLUGIN_CLASS = 'Drupal\user\Plugin\migrate\source\d7\User';
|
||||
|
||||
protected $migrationConfiguration = [
|
||||
'id' => 'test',
|
||||
'source' => [
|
||||
'plugin' => 'd7_user',
|
||||
],
|
||||
];
|
||||
|
||||
protected $expectedResults = [
|
||||
[
|
||||
'uid' => '2',
|
||||
'name' => 'Odo',
|
||||
'pass' => '$S$DVpvPItXvnsmF3giVEe7Jy2lG.SCoEs8uKwpHsyPvdeNAaNZYxZ8',
|
||||
'mail' => 'odo@local.host',
|
||||
'signature' => '',
|
||||
'signature_format' => 'filtered_html',
|
||||
'created' => '1432750741',
|
||||
'access' => '0',
|
||||
'login' => '0',
|
||||
'status' => '1',
|
||||
'timezone' => 'America/Chicago',
|
||||
'language' => '',
|
||||
'picture' => '0',
|
||||
'init' => 'odo@local.host',
|
||||
'roles' => [2],
|
||||
'data' => [
|
||||
'contact' => 1,
|
||||
],
|
||||
'field_file' => [
|
||||
[
|
||||
'fid' => 99,
|
||||
'display' => 1,
|
||||
'description' => 'None',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
$this->databaseContents['users'][] = [
|
||||
'uid' => '2',
|
||||
'name' => 'Odo',
|
||||
'pass' => '$S$DVpvPItXvnsmF3giVEe7Jy2lG.SCoEs8uKwpHsyPvdeNAaNZYxZ8',
|
||||
'mail' => 'odo@local.host',
|
||||
'theme' => '',
|
||||
'signature' => '',
|
||||
'signature_format' => 'filtered_html',
|
||||
'created' => '1432750741',
|
||||
'access' => '0',
|
||||
'login' => '0',
|
||||
'status' => '1',
|
||||
'timezone' => 'America/Chicago',
|
||||
'language' => '',
|
||||
'picture' => '0',
|
||||
'init' => 'odo@local.host',
|
||||
'data' => 'a:1:{s:7:"contact";i:1;}',
|
||||
];
|
||||
$this->databaseContents['users_roles'][] = [
|
||||
'uid' => 2,
|
||||
'rid' => 2,
|
||||
];
|
||||
$this->databaseContents['role'][] = [
|
||||
'rid' => 2,
|
||||
'name' => 'authenticated user',
|
||||
'weight' => 0,
|
||||
];
|
||||
$this->databaseContents['field_config_instance'] = [
|
||||
[
|
||||
'id' => '33',
|
||||
'field_id' => '11',
|
||||
'field_name' => 'field_file',
|
||||
'entity_type' => 'user',
|
||||
'bundle' => 'user',
|
||||
'data' => 'a:0:{}',
|
||||
'deleted' => '0',
|
||||
],
|
||||
];
|
||||
$this->databaseContents['field_data_field_file'] = [
|
||||
[
|
||||
'entity_type' => 'user',
|
||||
'bundle' => 'user',
|
||||
'deleted' => 0,
|
||||
'entity_id' => 2,
|
||||
'revision_id' => NULL,
|
||||
'language' => 'und',
|
||||
'delta' => 0,
|
||||
'field_file_fid' => 99,
|
||||
'field_file_display' => 1,
|
||||
'field_file_description' => 'None',
|
||||
],
|
||||
];
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue