Update to Drupal 8.1.0. For more information, see https://www.drupal.org/drupal-8.1.0-release-notes

This commit is contained in:
Pantheon Automation 2016-04-20 09:56:34 -07:00 committed by Greg Anderson
parent b11a755ba8
commit c0a0d5a94c
6920 changed files with 64395 additions and 57312 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,47 @@
<?php
namespace Drupal\Tests\migrate_drupal\Kernel;
use Drupal\Core\Database\Database;
use Drupal\Tests\migrate\Kernel\MigrateTestBase;
/**
* Base class for Drupal migration tests.
*/
abstract class MigrateDrupalTestBase extends MigrateTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = array('system', 'user', 'field', 'migrate_drupal', 'options', 'file');
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->installEntitySchema('user');
$this->installConfig(['migrate_drupal', 'system']);
}
/**
* Loads a database fixture into the source database connection.
*
* @param string $path
* Path to the dump file.
*/
protected function loadFixture($path) {
$default_db = Database::getConnection()->getKey();
Database::setActiveConnection($this->sourceDatabase->getKey());
if (substr($path, -3) == '.gz') {
$path = 'compress.zlib://' . $path;
}
require $path;
Database::setActiveConnection($default_db);
}
}

View file

@ -0,0 +1,88 @@
<?php
namespace Drupal\Tests\migrate_drupal\Kernel\d6;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\user\Entity\User;
/**
* @group migrate_drupal
*/
class EntityContentBaseTest extends MigrateDrupal6TestBase {
/**
* {@inheritdoc}
*/
public static $modules = ['migrate_overwrite_test'];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
// Create a field on the user entity so that we can test nested property
// overwrites.
// @see static::testOverwriteSelectedNestedProperty()
FieldStorageConfig::create([
'field_name' => 'signature',
'entity_type' => 'user',
'type' => 'text_long',
])->save();
FieldConfig::create([
'field_name' => 'signature',
'entity_type' => 'user',
'bundle' => 'user',
])->save();
User::create([
'uid' => 2,
'name' => 'Ford Prefect',
'mail' => 'ford.prefect@localhost',
'signature' => array(
array(
'value' => 'Bring a towel.',
'format' => 'filtered_html',
),
),
'init' => 'proto@zo.an',
])->save();
$this->executeMigrations(['d6_filter_format', 'd6_user_role']);
}
/**
* Tests overwriting all mapped properties in the destination entity (default
* behavior).
*/
public function testOverwriteAllMappedProperties() {
$this->executeMigration('d6_user');
/** @var \Drupal\user\UserInterface $account */
$account = User::load(2);
$this->assertIdentical('john.doe', $account->label());
$this->assertIdentical('john.doe@example.com', $account->getEmail());
$this->assertIdentical('doe@example.com', $account->getInitialEmail());
}
/**
* Tests overwriting selected properties in the destination entity, specified
* in the destination configuration.
*/
public function testOverwriteProperties() {
// Execute the migration in migrate_overwrite_test, which documents how
// property overwrites work.
$this->executeMigration('users');
/** @var \Drupal\user\UserInterface $account */
$account = User::load(2);
$this->assertIdentical('john.doe', $account->label());
$this->assertIdentical('john.doe@example.com', $account->getEmail());
$this->assertIdentical('The answer is 42.', $account->signature->value);
// This value is not overwritten because it's not listed in
// overwrite_properties.
$this->assertIdentical('proto@zo.an', $account->getInitialEmail());
}
}

View file

@ -0,0 +1,116 @@
<?php
namespace Drupal\Tests\migrate_drupal\Kernel\d6;
use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase;
/**
* Base class for Drupal 6 migration tests.
*/
abstract class MigrateDrupal6TestBase extends MigrateDrupalTestBase {
/**
* {@inheritdoc}
*/
public static $modules = [
'datetime',
'filter',
'image',
'link',
'node',
'options',
'telephone',
'text',
];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->loadFixture( __DIR__ . '/../../../fixtures/drupal6.php');
}
/**
* Executes all user migrations.
*
* @param bool $include_pictures
* If TRUE, migrates user pictures.
*/
protected function migrateUsers($include_pictures = TRUE) {
$this->executeMigrations(['d6_filter_format', 'd6_user_role']);
if ($include_pictures) {
$this->installEntitySchema('file');
$this->executeMigrations([
'd6_file',
'd6_user_picture_file',
'user_picture_field',
'user_picture_field_instance',
'user_picture_entity_display',
'user_picture_entity_form_display',
]);
}
$this->executeMigration('d6_user');
}
/**
* Migrates node types.
*/
protected function migrateContentTypes() {
$this->installConfig(['node']);
$this->executeMigration('d6_node_type');
}
/**
* Executes all field migrations.
*/
protected function migrateFields() {
$this->migrateContentTypes();
$this->executeMigrations([
'd6_field',
'd6_field_instance',
'd6_field_instance_widget_settings',
'd6_view_modes',
'd6_field_formatter_settings',
'd6_upload_field',
'd6_upload_field_instance',
]);
}
/**
* Executes all content migrations.
*
* @param bool $include_revisions
* If TRUE, migrates node revisions.
*/
protected function migrateContent($include_revisions = FALSE) {
$this->migrateUsers(FALSE);
$this->migrateFields();
$this->installEntitySchema('node');
$this->executeMigrations(['d6_node_settings', 'd6_node']);
if ($include_revisions) {
$this->executeMigrations(['d6_node_revision']);
}
}
/**
* Executes all taxonomy migrations.
*/
protected function migrateTaxonomy() {
$this->migrateContentTypes();
$this->installEntitySchema('taxonomy_term');
$this->executeMigrations([
'd6_taxonomy_vocabulary',
'd6_vocabulary_field',
'd6_vocabulary_field_instance',
'd6_vocabulary_entity_display',
'd6_vocabulary_entity_form_display',
'd6_taxonomy_term',
]);
}
}

View file

@ -0,0 +1,20 @@
<?php
namespace Drupal\Tests\migrate_drupal\Kernel\d7;
use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase;
/**
* Base class for Drupal 7 migration tests.
*/
abstract class MigrateDrupal7TestBase extends MigrateDrupalTestBase {
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->loadFixture(__DIR__ . '/../../../fixtures/drupal7.php');
}
}

View file

@ -0,0 +1,73 @@
<?php
namespace Drupal\Tests\migrate_drupal\Kernel\dependencies;
use Drupal\Component\Utility\SafeMarkup;
use Drupal\migrate\MigrateExecutable;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/**
* Ensure the consistency among the dependencies for migrate.
*
* @group migrate_drupal
*/
class MigrateDependenciesTest extends MigrateDrupal6TestBase {
/**
* {@inheritdoc}
*/
public static $modules = ['aggregator', 'comment'];
/**
* Tests that the order is correct when loading several migrations.
*/
public function testMigrateDependenciesOrder() {
$migration_items = array('d6_comment', 'd6_filter_format', 'd6_node:page');
$migrations = $this->container->get('plugin.manager.migration')->createInstances($migration_items);
$expected_order = array('d6_filter_format', 'd6_node:page', 'd6_comment');
$this->assertIdentical(array_keys($migrations), $expected_order);
$expected_requirements = array(
// d6_comment depends on d6_node:*, which the deriver expands into every
// variant of d6_node.
'd6_node:article',
'd6_node:company',
'd6_node:employee',
'd6_node:event',
'd6_node:page',
'd6_node:sponsor',
'd6_node:story',
'd6_node:test_event',
'd6_node:test_page',
'd6_node:test_planet',
'd6_node:test_story',
'd6_node_type',
'd6_node_settings',
'd6_filter_format',
'd6_user',
'd6_comment_type',
'd6_comment_entity_display',
'd6_comment_entity_form_display',
);
// Migration dependencies for comment include dependencies for node
// migration as well.
$actual_requirements = $migrations['d6_comment']->get('requirements');
$this->assertIdentical(count($actual_requirements), count($expected_requirements));
foreach ($expected_requirements as $requirement) {
$this->assertIdentical($actual_requirements[$requirement], $requirement);
}
}
/**
* Tests dependencies on the migration of aggregator feeds & items.
*/
public function testAggregatorMigrateDependencies() {
/** @var \Drupal\migrate\Plugin\Migration $migration */
$migration = $this->getMigration('d6_aggregator_item');
$executable = new MigrateExecutable($migration, $this);
$this->startCollectingMessages();
$executable->import();
$this->assertEqual($this->migrateMessages['error'], array(SafeMarkup::format('Migration @id did not meet the requirements. Missing migrations d6_aggregator_feed. requirements: d6_aggregator_feed.', array('@id' => $migration->id()))));
$this->collectMessages = FALSE;
}
}

View file

@ -1,10 +1,5 @@
<?php
/**
* @file
* Contains \Drupal\Tests\migrate_drupal\Unit\source\VariableMultiRowSourceWithHighwaterTest.
*/
namespace Drupal\Tests\migrate_drupal\Unit\source;
/**

View file

@ -1,10 +1,5 @@
<?php
/**
* @file
* Contains \Drupal\Tests\migrate_drupal\Unit\source\VariableMultiRowTest.
*/
namespace Drupal\Tests\migrate_drupal\Unit\source;
/**

View file

@ -1,10 +1,5 @@
<?php
/**
* @file
* Contains \Drupal\Tests\migrate_drupal\Unit\source\VariableMultiRowTestBase.
*/
namespace Drupal\Tests\migrate_drupal\Unit\source;
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;

View file

@ -1,10 +1,5 @@
<?php
/**
* @file
* Contains \Drupal\Tests\migrate_drupal\Unit\source\VariableTest.
*/
namespace Drupal\Tests\migrate_drupal\Unit\source;
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;

View file

@ -1,10 +1,5 @@
<?php
/**
* @file
* Contains \Drupal\Tests\migrate_drupal\Unit\source\d6\i18nVariableTest.
*/
namespace Drupal\Tests\migrate_drupal\Unit\source\d6;
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;