diff --git a/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php b/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php index 5be85c42f2..1a1a179150 100644 --- a/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php +++ b/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php @@ -3,12 +3,14 @@ namespace Drupal\migrate_drupal_ui\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Extension\Exception\UnknownExtensionException; +use Drupal\Core\Extension\ModuleHandler; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\State\StateInterface; use Drupal\Core\TempStore\PrivateTempStoreFactory; -use Drupal\migrate_drupal_ui\Batch\MigrateUpgradeImportBatch; -use Drupal\migrate_drupal\MigrationState; use Drupal\migrate\Plugin\MigrationPluginManagerInterface; +use Drupal\migrate_drupal\MigrationState; +use Drupal\migrate_drupal_ui\Batch\MigrateUpgradeImportBatch; use Symfony\Component\DependencyInjection\ContainerInterface; /** @@ -44,23 +46,40 @@ class ReviewForm extends MigrateUpgradeFormBase { */ protected $migrationState; + /** + * Module handler. + * + * @var \Drupal\Core\Extension\ModuleHandler + */ + protected $moduleHandler; + + /** + * Source system data set in buildForm(). + * + * @var array + */ + protected $systemData; + /** * ReviewForm constructor. * - * @param \Drupal\Core\State\StateInterface $state - * The state service. + * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory + * The config factory service. * @param \Drupal\migrate\Plugin\MigrationPluginManagerInterface $migration_plugin_manager * The migration plugin manager service. + * @param \Drupal\Core\State\StateInterface $state + * The state service. * @param \Drupal\Core\TempStore\PrivateTempStoreFactory $tempstore_private * The private tempstore factory service. - * @param \Drupal\migrate_drupal\MigrationState $migrationState + * @param \Drupal\migrate_drupal\MigrationState $migration_state * Migration state service. - * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory - * The config factory service. + * @param \Drupal\Core\Extension\ModuleHandler $module_handler + * The module handler service. */ - public function __construct(StateInterface $state, MigrationPluginManagerInterface $migration_plugin_manager, PrivateTempStoreFactory $tempstore_private, MigrationState $migrationState, ConfigFactoryInterface $config_factory) { + public function __construct(ConfigFactoryInterface $config_factory, MigrationPluginManagerInterface $migration_plugin_manager, StateInterface $state, PrivateTempStoreFactory $tempstore_private, MigrationState $migration_state, ModuleHandler $module_handler) { parent::__construct($config_factory, $migration_plugin_manager, $state, $tempstore_private); - $this->migrationState = $migrationState; + $this->migrationState = $migration_state; + $this->moduleHandler = $module_handler; } /** @@ -68,11 +87,12 @@ public function __construct(StateInterface $state, MigrationPluginManagerInterfa */ public static function create(ContainerInterface $container) { return new static( - $container->get('state'), + $container->get('config.factory'), $container->get('plugin.manager.migration'), + $container->get('state'), $container->get('tempstore.private'), $container->get('migrate_drupal.migration_state'), - $container->get('config.factory') + $container->get('module_handler') ); } @@ -91,10 +111,10 @@ public function buildForm(array $form, FormStateInterface $form_state) { $version = $this->store->get('version'); $this->migrations = $this->store->get('migrations'); // Fetch the source system data at the first opportunity. - $system_data = $this->store->get('system_data'); + $this->systemData = $this->store->get('system_data'); // If data is missing or this is the wrong step, start over. - if (!$version || !$this->migrations || !$system_data || + if (!$version || !$this->migrations || !$this->systemData || ($this->store->get('step') != 'review')) { return $this->restartUpgradeForm(); } @@ -105,7 +125,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { $migrations = $this->migrationPluginManager->createInstances(array_keys($this->store->get('migrations'))); // Get the upgrade states for the source modules. - $display = $this->migrationState->getUpgradeStates($version, $system_data, $migrations); + $display = $this->migrationState->getUpgradeStates($version, $this->systemData, $migrations); // Missing migrations. $missing_module_list = [ @@ -119,31 +139,30 @@ public function buildForm(array $form, FormStateInterface $form_state) { $missing_module_list['module_list'] = [ '#type' => 'table', '#header' => [ - $this->t('Drupal @version', ['@version' => $version]), + $this->t('Drupal @version module name', ['@version' => $version]), + $this->t('Drupal @version machine name', ['@version' => $version]), $this->t('Drupal 8'), ], ]; $missing_count = 0; if (isset($display[MigrationState::NOT_FINISHED])) { - foreach ($display[MigrationState::NOT_FINISHED] as $source_module => $destination_modules) { + $output = $this->prepareOutput($display[MigrationState::NOT_FINISHED]); + foreach ($output as $data) { $missing_count++; - // Get the migration status for this $source_module, if a module of the + // Get the migration status for each source module, if a module of the // same name exists on the destination site. $missing_module_list['module_list'][] = [ - 'source_module' => [ - '#type' => 'html_tag', - '#tag' => 'span', - '#value' => $source_module, - '#attributes' => [ - 'class' => [ - 'upgrade-analysis-report__status-icon', - 'upgrade-analysis-report__status-icon--error', - ], - ], + 'source_module_name' => [ + '#prefix' => '', + '#suffix' => '', + '#plain_text' => $data['source_module_name'], + ], + 'source_machine_name' => [ + '#plain_text' => $data['source_machine_name'], ], 'destination_module' => [ - '#plain_text' => $destination_modules, + '#plain_text' => $data['destination'], ], ]; } @@ -160,29 +179,28 @@ public function buildForm(array $form, FormStateInterface $form_state) { $available_module_list['module_list'] = [ '#type' => 'table', '#header' => [ - $this->t('Drupal @version', ['@version' => $version]), + $this->t('Drupal @version module name', ['@version' => $version]), + $this->t('Drupal @version machine name', ['@version' => $version]), $this->t('Drupal 8'), ], ]; $available_count = 0; if (isset($display[MigrationState::FINISHED])) { - foreach ($display[MigrationState::FINISHED] as $source_module => $destination_modules) { + $output = $this->prepareOutput($display[MigrationState::FINISHED]); + foreach ($output as $data) { $available_count++; $available_module_list['module_list'][] = [ - 'source_module' => [ - '#type' => 'html_tag', - '#tag' => 'span', - '#value' => $source_module, - '#attributes' => [ - 'class' => [ - 'upgrade-analysis-report__status-icon', - 'upgrade-analysis-report__status-icon--checked', - ], - ], + 'source_module_name' => [ + '#prefix' => '', + '#suffix' => '', + '#plain_text' => $data['source_module_name'], + ], + 'source_machine_name' => [ + '#plain_text' => $data['source_machine_name'], ], 'destination_module' => [ - '#plain_text' => $destination_modules, + '#plain_text' => $data['destination'], ], ]; } @@ -254,4 +272,58 @@ public function getConfirmText() { return $this->t('Perform upgrade'); } + /** + * Prepare the migration state data for output. + * + * Each source and destination module_name is changed to the human readable + * name, the destination modules are put into a CSV format, and everything is + * sorted. + * + * @param array $migration_state + * An array where the keys are machine names of modules on + * the source site. Values are lists of machine names of modules on the + * destination site, in CSV format. + * + * @return array + * An indexed array of arrays that contain module data, sorted by the source + * module name. Each sub-array of contains the source module name, the + * source module machine name, and the the destination module names in a + * sorted CSV format. + */ + protected function prepareOutput(array $migration_state) { + $output = []; + foreach ($migration_state as $source_machine_name => $destination_modules) { + $data = unserialize($this->systemData['module'][$source_machine_name]['info']); + $source_module_name = $data['name'] ?: $source_machine_name; + // Get the names of all the destination modules. + $destination_module_names = []; + if (!empty($destination_modules)) { + $destination_modules = explode(', ', $destination_modules); + foreach ($destination_modules as $destination_module) { + if ($destination_module === 'core') { + $destination_module_names[] = 'Core'; + } + else { + try { + $destination_module_names[] = $this->moduleHandler->getName($destination_module); + } + catch (UnknownExtensionException $e) { + $destination_module_names[] = $destination_module; + } + } + } + } + sort($destination_module_names); + $output[$source_machine_name] = [ + 'source_module_name' => $source_module_name, + 'source_machine_name' => $source_machine_name, + 'destination' => implode(', ', $destination_module_names), + ]; + } + usort($output, function ($a, $b) { + return strcmp($a['source_module_name'], $b['source_module_name']); + }); + return $output; + } + } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php index 4b6754487c..737f61f22a 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php @@ -145,7 +145,7 @@ protected function assertUpgradePaths(WebAssert $session, array $available_paths * Gets the available upgrade paths. * * @return string[] - * An array of available upgrade paths. + * An array of source modules names that will be upgraded. */ abstract protected function getAvailablePaths(); @@ -153,7 +153,7 @@ protected function assertUpgradePaths(WebAssert $session, array $available_paths * Gets the missing upgrade paths. * * @return string[] - * An array of missing upgrade paths. + * An array of source modules names that will not upgraded. */ abstract protected function getMissingPaths(); diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MultilingualReviewPageTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MultilingualReviewPageTestBase.php index b9f11b20e3..10e2395974 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/MultilingualReviewPageTestBase.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MultilingualReviewPageTestBase.php @@ -69,9 +69,10 @@ public function testMigrateUpgradeReviewPage() { $this->assertUpgradePaths($session, $available_paths, $missing_paths); // Check there are no errors when a module does not have any migrations and - // does not need any. Test with a module that is was in both Drupal 6 and + // does not need any. Test with a module that was in both Drupal 6 and // Drupal 7 core. $module = 'help'; + $module_name = 'Help'; $query = $this->sourceDatabase->delete('system'); $query->condition('type', 'module'); $query->condition('name', $module); @@ -86,7 +87,7 @@ public function testMigrateUpgradeReviewPage() { // Test the upgrade paths. First remove the module from the available paths // list. $available_paths = $this->getAvailablePaths(); - $available_paths = array_diff($available_paths, [$module]); + $available_paths = array_diff($available_paths, [$module_name]); $missing_paths = $this->getMissingPaths(); $this->assertUpgradePaths($session, $available_paths, $missing_paths); } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MultilingualReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MultilingualReviewPageTest.php index ea7c6bac6f..69bc61d439 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MultilingualReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MultilingualReviewPageTest.php @@ -60,83 +60,82 @@ protected function getSourceBasePath() { */ protected function getAvailablePaths() { return [ - // Aggregator is set not_finished in migrate_sate_not_finished_test. - 'aggregator', - 'blog', - 'blogapi', - 'book', - 'calendarsignup', - 'color', - 'comment', - 'contact', - 'content', - 'content_copy', - 'content_multigroup', - 'content_permissions', - 'date', - 'date_api', - 'date_locale', - 'date_php4', - 'date_popup', - 'date_repeat', - 'date_timezone', - 'date_tools', - 'datepicker', - 'dblog', - 'ddblock', - 'email', - 'event', - 'fieldgroup', - 'filefield', - 'filefield_meta', - 'filter', - 'forum', - 'help', - 'i18nblocks', - 'i18ncontent', - 'i18nmenu', - 'i18npoll', - 'i18nprofile', - 'i18nsync', - 'imageapi', - 'imageapi_gd', - 'imageapi_imagemagick', - 'imagecache', - 'imagecache_ui', - 'imagefield', - 'jquery_ui', - 'link', - 'menu', - 'node', - 'nodeaccess', - 'nodereference', - 'number', - 'openid', - 'optionwidgets', - 'path', - 'phone', - 'php', - 'ping', - 'poll', - 'profile', - 'search', - 'statistics', - 'syslog', - 'system', - 'taxonomy', - 'text', - 'throttle', - 'tracker', - 'translation', - 'trigger', - 'update', - 'upload', - 'user', - 'userreference', - 'variable', - 'variable_admin', - 'views_export', - 'views_ui', + 'Aggregator', + 'Block translation', + 'Blog', + 'Blog API', + 'Book', + 'Calendar Signup', + 'Color', + 'Comment', + 'Contact', + 'Content', + 'Content Copy', + 'Content Multigroup', + 'Content Permissions', + 'Content translation', + 'Content type translation', + 'Database logging', + 'Date', + 'Date API', + 'Date Locale', + 'Date PHP4', + 'Date Picker', + 'Date Popup', + 'Date Repeat API', + 'Date Timezone', + 'Date Tools', + 'Dynamic display block', + 'Email', + 'Event', + 'Fieldgroup', + 'FileField', + 'FileField Meta', + 'Filter', + 'Forum', + 'Help', + 'ImageAPI', + 'ImageAPI GD2', + 'ImageAPI ImageMagick', + 'ImageCache', + 'ImageCache UI', + 'ImageField', + 'Link', + 'Menu', + 'Menu translation', + 'Node', + 'Node Reference', + 'Nodeaccess', + 'Number', + 'OpenID', + 'Option Widgets', + 'PHP filter', + 'Path', + 'Phone - CCK', + 'Ping', + 'Poll', + 'Poll aggregate', + 'Profile', + 'Profile translation', + 'Search', + 'Statistics', + 'Synchronize translations', + 'Syslog', + 'System', + 'Taxonomy', + 'Text', + 'Throttle', + 'Tracker', + 'Trigger', + 'Update status', + 'Upload', + 'User', + 'User Reference', + 'Variable API', + 'Variable admin', + 'Views UI', + 'Views exporter', + 'jQuery UI', ]; } @@ -145,19 +144,19 @@ protected function getAvailablePaths() { */ protected function getMissingPaths() { return [ - // Block is set not_finished in migrate_sate_not_finished_test. - 'block', - 'devel', - 'devel_generate', - 'devel_node_access', - 'i18n', - 'i18ncck', - 'i18nstrings', - 'i18ntaxonomy', - 'i18nviews', - 'locale', + // Block is set not_finished in migrate_state_not_finished_test. + 'Block', + 'CCK translation', + 'Devel', + 'Devel generate', + 'Devel node access', + 'Internationalization', + 'Locale', + 'String translation', + 'Taxonomy translation', + 'Views', + 'Views translation', 'migrate_status_active_test', - 'views', ]; } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/NoMultilingualReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/NoMultilingualReviewPageTest.php index 469a73ca89..9343bbad2f 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/NoMultilingualReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/NoMultilingualReviewPageTest.php @@ -57,77 +57,77 @@ protected function getSourceBasePath() { */ protected function getAvailablePaths() { return [ - 'aggregator', - 'blog', - 'blogapi', - 'book', - 'calendarsignup', - 'color', - 'comment', - 'contact', - 'content', - 'content_copy', - 'content_multigroup', - 'content_permissions', - 'date', - 'date_api', - 'date_locale', - 'date_php4', - 'date_popup', - 'date_repeat', - 'date_timezone', - 'date_tools', - 'datepicker', - 'dblog', - 'ddblock', - 'email', - 'event', - 'fieldgroup', - 'filefield', - 'filefield_meta', - 'filter', - 'forum', - 'help', - 'imageapi', - 'imageapi_gd', - 'imageapi_imagemagick', - 'imagecache', - 'imagecache_ui', - 'imagefield', - 'jquery_ui', - 'link', - 'locale', - 'menu', - 'node', - 'nodeaccess', - 'nodereference', - 'number', - 'openid', - 'optionwidgets', - 'path', - 'phone', - 'php', - 'ping', - 'poll', - 'profile', - 'search', - 'statistics', - 'syslog', - 'system', - 'taxonomy', - 'text', - 'throttle', - 'tracker', - 'translation', - 'trigger', - 'update', - 'upload', - 'user', - 'userreference', - 'variable', - 'variable_admin', - 'views_export', - 'views_ui', + 'Aggregator', + 'Blog', + 'Blog API', + 'Book', + 'Calendar Signup', + 'Color', + 'Comment', + 'Contact', + 'Content', + 'Content Copy', + 'Content Multigroup', + 'Content Permissions', + 'Content translation', + 'Database logging', + 'Date', + 'Date API', + 'Date Locale', + 'Date PHP4', + 'Date Picker', + 'Date Popup', + 'Date Repeat API', + 'Date Timezone', + 'Date Tools', + 'Dynamic display block', + 'Email', + 'Event', + 'Fieldgroup', + 'FileField', + 'FileField Meta', + 'Filter', + 'Forum', + 'Help', + 'ImageAPI', + 'ImageAPI GD2', + 'ImageAPI ImageMagick', + 'ImageCache', + 'ImageCache UI', + 'ImageField', + 'Link', + 'Locale', + 'Menu', + 'Node', + 'Nodeaccess', + 'Node Reference', + 'Number', + 'OpenID', + 'Option Widgets', + 'PHP filter', + 'Path', + 'Phone - CCK', + 'Ping', + 'Poll', + 'Profile', + 'Search', + 'Statistics', + 'Syslog', + 'System', + 'Taxonomy', + 'Text', + 'Throttle', + 'Tracker', + 'Trigger', + 'Update status', + 'Upload', + 'User', + 'User Reference', + 'Variable API', + 'Variable admin', + 'Views UI', + 'Views exporter', + 'jQuery UI', ]; } @@ -144,23 +144,23 @@ protected function getIncompletePaths() { protected function getMissingPaths() { return [ // Block is set not_finished in migrate_state_not_finished_test. - 'block', - 'devel', - 'devel_generate', - 'devel_node_access', - 'i18n', - 'i18nblocks', - 'i18ncck', - 'i18ncontent', - 'i18nmenu', - 'i18npoll', - 'i18nprofile', - 'i18nstrings', - 'i18nsync', - 'i18ntaxonomy', - 'i18nviews', + 'Block', + 'Block translation', + 'CCK translation', + 'Content type translation', + 'Devel', + 'Devel generate', + 'Devel node access', + 'Internationalization', + 'Menu translation', 'migrate_status_active_test', - 'views', + 'Poll aggregate', + 'Profile translation', + 'String translation', + 'Synchronize translations', + 'Taxonomy translation', + 'Views', + 'Views translation', ]; } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php index 7d8822d5d1..81c6fca3f7 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php @@ -141,48 +141,48 @@ protected function getEntityCountsIncremental() { */ protected function getAvailablePaths() { return [ - 'aggregator', - 'block', - 'book', - 'comment', - 'contact', - 'content', - 'date', - 'email', - 'filefield', - 'filter', - 'forum', - 'i18nblocks', - 'i18ncontent', - 'i18nmenu', - 'i18nprofile', - 'i18nsync', - 'imagecache', - 'imagefield', - 'menu', - 'node', - 'nodereference', - 'optionwidgets', - 'path', - 'search', - 'statistics', - 'system', - 'taxonomy', - 'text', - 'translation', - 'upload', - 'user', - 'userreference', + 'Aggregator', + 'Block', + 'Block translation', + 'Book', + 'Comment', + 'Contact', + 'Content', + 'Content translation', + 'Content type translation', + 'Date', + 'Email', + 'FileField', + 'Filter', + 'Forum', + 'ImageCache', + 'ImageField', + 'Menu', + 'Menu translation', + 'Node', + 'Node Reference', + 'Option Widgets', + 'Path', + 'Profile translation', + 'Search', + 'Statistics', + 'Synchronize translations', + 'System', + 'Taxonomy', + 'Text', + 'Upload', + 'User', + 'User Reference', // Include modules that do not have an upgrade path and are enabled in the // source database'. - 'date_api', - 'date_timezone', - 'event', - 'imageapi', - 'number', - 'php', - 'profile', - 'variable_admin', + 'Date API', + 'Date Timezone', + 'Event', + 'ImageAPI', + 'Number', + 'PHP filter', + 'Profile', + 'Variable admin', ]; } @@ -191,11 +191,11 @@ protected function getAvailablePaths() { */ protected function getMissingPaths() { return [ - 'i18n', - 'i18ncck', - 'i18nstrings', - 'i18ntaxonomy', - 'locale', + 'CCK translation', + 'Internationalization', + 'Locale', + 'String translation', + 'Taxonomy translation', ]; } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MultilingualReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MultilingualReviewPageTest.php index ca1944c1e7..9628f33968 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MultilingualReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MultilingualReviewPageTest.php @@ -57,83 +57,83 @@ protected function getSourceBasePath() { */ protected function getAvailablePaths() { return [ - 'blog', - 'book', - 'bulk_export', - 'color', - 'comment', - 'contact', - 'contextual', - 'ctools', - 'ctools_access_ruleset', - 'ctools_ajax_sample', - 'ctools_custom_content', - 'dashboard', - 'date', - 'date_api', - 'date_all_day', - 'date_context', - 'date_migrate', - 'date_popup', - 'date_repeat', - 'date_repeat_field', - 'date_tools', - 'date_views', - 'dblog', - 'email', - 'entity', - 'entity_feature', - 'entity_token', - 'entity_translation', - 'entityreference', - 'field', - 'field_sql_storage', - 'field_ui', - 'file', - 'filter', - 'forum', - 'help', - 'i18n_block', - 'i18n_sync', - 'image', - 'link', - 'list', - 'locale', - 'menu', - 'number', - 'node', - 'openid', - 'options', - 'overlay', - 'page_manager', - 'path', - 'phone', - 'php', - 'poll', - 'profile', - 'rdf', - 'search', - 'search_embedded_form', - 'search_extra_type', - 'search_node_tags', - 'shortcut', - 'simpletest', - 'statistics', - 'stylizer', - 'syslog', - 'system', - 'taxonomy', - 'term_depth', - 'text', - 'title', - 'toolbar', - 'tracker', - 'translation', - 'trigger', - 'update', - 'user', - 'views_content', - 'views_ui', + 'Block languages', + 'Blog', + 'Book', + 'Bulk Export', + 'Chaos tools', + 'Chaos Tools (CTools) AJAX Example', + 'Color', + 'Comment', + 'Contact', + 'Content translation', + 'Contextual links', + 'Custom content panes', + 'Custom rulesets', + 'Dashboard', + 'Database logging', + 'Date', + 'Date API', + 'Date All Day', + 'Date Context', + 'Date Migration', + 'Date Popup', + 'Date Repeat API', + 'Date Repeat Field', + 'Date Tools', + 'Date Views', + 'Email', + 'Entity API', + 'Entity Reference', + 'Entity Translation', + 'Entity feature module', + 'Entity tokens', + 'Field', + 'Field SQL storage', + 'Field UI', + 'File', + 'Filter', + 'Forum', + 'Help', + 'Image', + 'Link', + 'List', + 'Locale', + 'Menu', + 'Node', + 'Number', + 'OpenID', + 'Options', + 'Overlay', + 'PHP filter', + 'Page manager', + 'Path', + 'Phone', + 'Poll', + 'Profile', + 'RDF', + 'Search', + 'Search embedded form', + 'Shortcut', + 'Statistics', + 'Stylizer', + 'Synchronize translations', + 'Syslog', + 'System', + 'Taxonomy', + 'Term Depth access', + 'Test search node tags', + 'Test search type', + 'Testing', + 'Text', + 'Title', + 'Toolbar', + 'Tracker', + 'Trigger', + 'Update manager', + 'User', + 'Views content panes', + 'Views UI', ]; } @@ -142,39 +142,39 @@ protected function getAvailablePaths() { */ protected function getMissingPaths() { return [ - // Action is set not_finished in migrate_sate_not_finished_test. - // Aggregator is set not_finished in migrate_sate_not_finished_test. - 'aggregator', - // Block is set not_finished in migrate_sate_not_finished_test. - 'block', - 'breakpoints', - 'entity_translation_i18n_menu', - 'entity_translation_upgrade', + // Action is set not_finished in migrate_state_not_finished_test. + // Aggregator is set not_finished in migrate_state_not_finished_test. + 'Aggregator', + // Block is set not_finished in migrate_state_not_finished_test. + 'Block', + 'Breakpoints', + 'Contact translation', + 'Entity Translation Menu', + 'Entity Translation Upgrade', + 'Field translation', // Flexslider_picture is a sub module of Picture module. Only the // styles from picture are migrated. - 'flexslider_picture', - 'i18n', - 'i18n_contact', - 'i18n_field', - 'i18n_forum', - 'i18n_menu', - 'i18n_node', - 'i18n_path', - 'i18n_redirect', - 'i18n_select', - 'i18n_string', - 'i18n_taxonomy', - 'i18n_translation', - 'i18n_user', - 'i18n_variable', - 'picture', + 'FlexSlider Picture', + 'Internationalization', + 'Menu translation', + 'Multilingual content', + 'Multilingual forum', + 'Multilingual select', + 'Path translation', + 'Picture', + 'String translation', + 'Taxonomy translation', + 'Translation redirect', + 'Translation sets', + 'User mail translation', + 'Variable', + 'Variable admin', + 'Variable realm', + 'Variable store', + 'Variable translation', + 'Variable views', + 'Views', 'migrate_status_active_test', - 'variable', - 'variable_admin', - 'variable_realm', - 'variable_store', - 'variable_views', - 'views', ]; } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/NoMultilingualReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/NoMultilingualReviewPageTest.php new file mode 100644 index 0000000000..5892cb7701 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/NoMultilingualReviewPageTest.php @@ -0,0 +1,179 @@ +loadFixture(drupal_get_path('module', 'migrate_drupal') . '/tests/fixtures/drupal7.php'); + } + + /** + * {@inheritdoc} + */ + protected function getSourceBasePath() { + return __DIR__ . '/files'; + } + + /** + * {@inheritdoc} + */ + protected function getAvailablePaths() { + return [ + 'Aggregator', + 'Block', + 'Block languages', + 'Book', + 'Bulk Export', + 'Chaos Tools (CTools) AJAX Example', + 'Chaos tools', + 'Color', + 'Comment', + 'Contact', + 'Custom content panes', + 'Custom rulesets', + 'Dashboard', + 'Database logging', + 'Date', + 'Date All Day', + 'Date Context', + 'Date Migration', + 'Date Popup', + 'Date Repeat API', + 'Date Repeat Field', + 'Date Tools', + 'Date Views', + 'Email', + 'Entity Reference', + 'Entity Translation', + 'Entity feature module', + 'Entity tokens', + 'Field', + 'Field SQL storage', + 'File', + 'Filter', + 'Forum', + 'Image', + 'Link', + 'List', + 'Menu', + 'Node', + 'Number', + 'OpenID', + 'Options', + 'Overlay', + 'Page manager', + 'Path', + 'Phone', + 'Poll', + 'Profile', + 'RDF', + 'Search', + 'Search embedded form', + 'Shortcut', + 'Statistics', + 'Stylizer', + 'Synchronize translations', + 'System', + 'Taxonomy', + 'Term Depth access', + 'Test search node tags', + 'Test search type', + 'Text', + 'Title', + 'User', + 'Variable translation', + 'Views UI', + 'Views content panes', + // Include modules that do not have an upgrade path and are enabled in the + // source database. + 'Blog', + 'Content translation', + 'Contextual links', + 'Date API', + 'Entity API', + 'Field UI', + 'Help', + 'PHP filter', + 'Testing', + 'Toolbar', + 'Trigger', + ]; + } + + /** + * {@inheritdoc} + */ + protected function getIncompletePaths() { + return []; + } + + /** + * {@inheritdoc} + */ + protected function getMissingPaths() { + return [ + 'Breakpoints', + 'Contact translation', + 'Entity Translation Menu', + 'Entity Translation Upgrade', + 'Field translation', + 'FlexSlider Picture', + 'Internationalization', + 'Locale', + 'Menu translation', + 'Multilingual content', + 'Multilingual forum', + 'Multilingual select', + 'Path translation', + 'Picture', + 'String translation', + 'Taxonomy translation', + 'Translation redirect', + 'Translation sets', + 'User mail translation', + 'Variable', + 'Variable admin', + 'Variable realm', + 'Variable store', + 'Variable views', + 'Views', + 'migrate_status_active_test', + // These modules are in the missing path list because they are installed + // on the source site but they are not installed on the destination site. + 'Syslog', + 'Tracker', + 'Update manager', + ]; + } + +} diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php index 2f7072f94e..8925a9e3b1 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php @@ -140,57 +140,57 @@ protected function getEntityCountsIncremental() { */ protected function getAvailablePaths() { return [ - 'aggregator', - 'block', - 'book', - 'color', - 'comment', - 'contact', - 'ctools', - 'date', - 'dblog', - 'email', - 'entity_translation', - 'entityreference', - 'field', - 'field_sql_storage', - 'file', - 'filter', - 'forum', - 'i18n_block', - 'i18n_sync', - 'i18n_variable', - 'image', - 'link', - 'list', - 'menu', - 'node', - 'number', - 'options', - 'path', - 'phone', - 'rdf', - 'search', - 'shortcut', - 'statistics', - 'system', - 'taxonomy', - 'text', - 'title', - 'user', + 'Aggregator', + 'Block languages', + 'Block', + 'Book', + 'Chaos tools', + 'Color', + 'Comment', + 'Contact', + 'Content translation', + 'Database logging', + 'Date', + 'Email', + 'Entity Reference', + 'Entity Translation', + 'Field SQL storage', + 'Field', + 'File', + 'Filter', + 'Forum', + 'Image', + 'Link', + 'List', + 'Menu', + 'Node', + 'Number', + 'Options', + 'Path', + 'Phone', + 'RDF', + 'Search', + 'Shortcut', + 'Statistics', + 'Synchronize translations', + 'System', + 'Taxonomy', + 'Text', + 'Title', + 'User', + 'Variable translation', // Include modules that do not have an upgrade path and are enabled in the // source database. - 'blog', - 'contextual', - 'date_api', - 'entity', - 'field_ui', - 'help', - 'php', - 'simpletest', - 'toolbar', - 'translation', - 'trigger', + 'Blog', + 'Contextual links', + 'Date API', + 'Entity API', + 'Field UI', + 'Help', + 'PHP filter', + 'Testing', + 'Toolbar', + 'Trigger', ]; } @@ -199,21 +199,21 @@ protected function getAvailablePaths() { */ protected function getMissingPaths() { return [ - 'i18n', - 'i18n_field', - 'i18n_string', - 'i18n_menu', - 'i18n_taxonomy', - 'i18n_translation', - 'locale', - 'variable', - 'variable_realm', - 'variable_store', + 'Field translation', + 'Internationalization', + 'Locale', + 'Menu translation', + 'String translation', + 'Taxonomy translation', + 'Translation sets', + 'Variable realm', + 'Variable store', + 'Variable', // These modules are in the missing path list because they are installed // on the source site but they are not installed on the destination site. - 'syslog', - 'tracker', - 'update', + 'Syslog', + 'Tracker', + 'Update manager', ]; }