diff --git a/core/modules/config_translation/config_translation.info.yml b/core/modules/config_translation/config_translation.info.yml index 6b38df266c..7481d75e76 100644 --- a/core/modules/config_translation/config_translation.info.yml +++ b/core/modules/config_translation/config_translation.info.yml @@ -11,8 +11,8 @@ migrate: - version: 6 status: incomplete - description: See Details + description: See Details + description: See Upgrading multilingual Drupal 7 to Drupal 8 diff --git a/core/modules/content_translation/content_translation.info.yml b/core/modules/content_translation/content_translation.info.yml index 659332248e..d3d773bc71 100644 --- a/core/modules/content_translation/content_translation.info.yml +++ b/core/modules/content_translation/content_translation.info.yml @@ -11,8 +11,8 @@ migrate: - version: 6 status: incomplete - description: See Details + description: See Details + description: See Upgrading multilingual Drupal 7 to Drupal 8 diff --git a/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php b/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php index f3e3b7a272..e20cecff80 100644 --- a/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php +++ b/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php @@ -190,7 +190,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { // Get all the data needed for this form. $version = $this->store->get('version'); $this->migrations = $this->store->get('migrations'); - // Fetch the system data at the first opportunity. + // Fetch the source system data at the first opportunity. $system_data = $this->store->get('system_data'); // If data is missing or this is the wrong step, start over. @@ -199,16 +199,14 @@ public function buildForm(array $form, FormStateInterface $form_state) { return $this->restartUpgradeForm(); } - // Get migration status for all modules. + // Get migration status for all modules on destination site. $system_info = system_get_info('module'); $destination_system_migrate_info = []; foreach ($system_info as $module => $info) { if (isset($info['migrate'])) { foreach ($info['migrate'] as $migrate_info) { - if (isset($migrate_info['version'])) { - if ($migrate_info['version'] == $version) { - $destination_system_migrate_info[$module] = $migrate_info; - } + if (isset($migrate_info['version']) && ($migrate_info['version'] == $version)) { + $destination_system_migrate_info[$module] = $migrate_info; } } } @@ -217,7 +215,9 @@ public function buildForm(array $form, FormStateInterface $form_state) { $form = parent::buildForm($form, $form_state); $form['#title'] = $this->t('What will be upgraded?'); - // Get the source_module and destination_module for each migration. + // Build an array of migrations, table_data, keyed by source_module and + // destination_module. Only migrations that have both a source_module and + // a destination_module definition are added to the array. $migrations = $this->pluginManager->createInstances(array_keys($this->store->get('migrations'))); $table_data = []; foreach ($migrations as $migration) { @@ -236,7 +236,8 @@ public function buildForm(array $form, FormStateInterface $form_state) { } } - // Get the source_module and destination_module from the field plugins. + // Add entries for the field plugins to table_data. Use the field plugin id + // as both the migration id and the migration label. $definitions = $this->fieldPluginManager->getDefinitions(); foreach ($definitions as $definition) { // This is not strict so that we find field plugins with an annotation @@ -248,22 +249,24 @@ public function buildForm(array $form, FormStateInterface $form_state) { } } - // Add source_module and destination_module for modules that do not need an - // upgrade path and are enabled on the source site. + // Adds entries for modules that do not need an upgrade path and are enabled + // on the source site to table_data. In this case use 'core' as the + // destination_module and the extension name as both the migration id and + // label. foreach ($this->noUpgradePaths[$version] as $extension) { if (isset($system_data['module'][$extension]) && $system_data['module'][$extension]['status']) { $table_data[$extension]['core'][$extension] = $extension; } } - // Add source_module and destination_module for destination modules with - // status 'n/a' and are enabled on the source site. + // Adds entries to table_data for modules with a migrate status of 'n/a' and + // are enabled on the source site. In this case use 'core' as the + // destination_module and the extension name as both the migration id and + // label. foreach ($destination_system_migrate_info as $extension => $migrate_info) { - if (isset($migrate_info['status'])) { - if (strtolower($migrate_info['status']) === 'n/a') { - if (isset($system_data['module'][$extension]) && $system_data['module'][$extension]['status']) { - $table_data[$extension]['core'][$extension] = $extension; - } + if (isset($migrate_info['status']) && (strtolower($migrate_info['status']) === 'n/a')) { + if (isset($system_data['module'][$extension]) && $system_data['module'][$extension]['status']) { + $table_data[$extension]['core'][$extension] = $extension; } } } @@ -305,7 +308,8 @@ public function buildForm(array $form, FormStateInterface $form_state) { $missing_count = 0; ksort($unmigrated_source_modules); foreach ($unmigrated_source_modules as $source_module => $module_data) { - // Get the system information for $source_module. + // Get the migration status for this information for $source_module. + //this is looking at the destination for a module named the same as the source $destination_description = []; if (isset($destination_system_migrate_info[$source_module])) { $output = isset($destination_system_migrate_info[$source_module]['description']) ? $destination_system_migrate_info[$source_module]['description'] : ''; @@ -316,7 +320,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { } if ($module_data['status']) { $missing_count++; - $missing_module_list['module_list'][$source_module] = [ + $missing_module_list['module_list'][] = [ 'source_module' => [ '#type' => 'html_tag', '#tag' => 'span', @@ -354,38 +358,48 @@ public function buildForm(array $form, FormStateInterface $form_state) { $available_count = 0; foreach ($table_data as $source_module => $destination_module_info) { $available_count++; - $destination_details = []; - $destination_description = []; foreach ($destination_module_info as $destination_module => $migration_ids) { - $destination_details[$destination_module] = [ + $destination_description = []; + $destination_details = [ '#type' => 'item', '#plain_text' => $destination_module, ]; - } - // Get the system information for $source_module. - if (isset($destination_system_migrate_info[$source_module])) { - $output = isset($destination_system_migrate_info[$source_module]['description']) ? $destination_system_migrate_info[$source_module]['description'] : ''; - $destination_description = [ - '#type' => 'item', - '#markup' => Xss::filterAdmin($output), - ]; - } + if (isset($destination_system_migrate_info[$destination_module])) { + $output = isset($destination_system_migrate_info[$destination_module]['description']) ? $destination_system_migrate_info[$destination_module]['description'] : ''; + $destination_description = [ + '#type' => 'item', + '#markup' => Xss::filterAdmin($output), + ]; + } - $available_module_list['module_list'][$source_module] = [ - 'source_module' => [ - '#type' => 'html_tag', - '#tag' => 'span', - '#value' => $source_module, - '#attributes' => [ - 'class' => [ + if (isset($destination_system_migrate_info[$destination_module]['status']) && $destination_system_migrate_info[$destination_module]['status'] == 'incomplete') { + $class = + [ + 'upgrade-analysis-report__status-icon', + 'upgrade-analysis-report__status-icon--warning', + ]; + } + else { + $class = + [ 'upgrade-analysis-report__status-icon', 'upgrade-analysis-report__status-icon--checked', - ], + ]; + } + + $available_module_list['module_list'][] = [ + 'source_module' => [ + '#type' => 'html_tag', + '#tag' => 'span', + '#value' => $source_module, + '#attributes' => [ + 'class' => $class + ], ], - ], - 'destination_module' => $destination_details, - 'destination_description' => $destination_description, - ]; + 'destination_module' => $destination_details, + 'destination_description' => $destination_description, + ]; + } } $counters = []; diff --git a/core/modules/migrate_drupal_ui/tests/modules/migration_status_incomplete_test/migration_status_incomplete_test.info.yml b/core/modules/migrate_drupal_ui/tests/modules/migration_status_incomplete_test/migration_status_incomplete_test.info.yml index 4fc216ec2a..329a4cfd37 100644 --- a/core/modules/migrate_drupal_ui/tests/modules/migration_status_incomplete_test/migration_status_incomplete_test.info.yml +++ b/core/modules/migrate_drupal_ui/tests/modules/migration_status_incomplete_test/migration_status_incomplete_test.info.yml @@ -1,6 +1,6 @@ name: 'Migration status incomplete test' type: module -description: 'Tests the 'incomplete' migrate status' +description: "Tests the 'incomplete' migrate status" package: Testing version: VERSION core: 8.x @@ -8,5 +8,5 @@ migrate: - version: 6 status: incomplete - description: See Migration status test of 'incomplete' status. + description: Migration status test of 'incomplete' status. diff --git a/core/modules/migrate_drupal_ui/tests/modules/migration_status_incomplete_test/migrations/migration_status_incomplete_test.yml b/core/modules/migrate_drupal_ui/tests/modules/migration_status_incomplete_test/migrations/migration_status_incomplete_test.yml index fa77a0574b..26bd728239 100644 --- a/core/modules/migrate_drupal_ui/tests/modules/migration_status_incomplete_test/migrations/migration_status_incomplete_test.yml +++ b/core/modules/migrate_drupal_ui/tests/modules/migration_status_incomplete_test/migrations/migration_status_incomplete_test.yml @@ -1,9 +1,9 @@ -id: incomplete_status_test -label: Block content body field configuration -#migration_tags: -# - Drupal 6 -# - Drupal 7 -# - Configuration +id: migration_status_incomplete_test +label: Migration status incomplete test +migration_tags: + - Drupal 6 + - Drupal 7 + - Configuration source: plugin: embedded_data data_rows: @@ -12,8 +12,9 @@ source: ids: entity_type: type: string - source_module: migration_status_incomplete_test + source_module: block process: entity_type: entity_type destination: - plugin: entity:field_config \ No newline at end of file + plugin: entity:field_config + destination_module: migration_status_incomplete_test diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php index fc9529ee40..b246f84af4 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php @@ -117,10 +117,12 @@ public function testMigrateUpgradeExecute() { // Ensure there are no errors about any other missing migration providers. $session->pageTextNotContains(t('module not found')); - // Test the upgrade paths. + // Test the review page. $available_paths = $this->getAvailablePaths(); + $available_paths_warning = $this->getAvailablePathsWarning(); $missing_paths = $this->getMissingPaths(); - $this->assertReviewPage($session, $available_paths, $missing_paths); + $details = $this->getDetails(); + $this->assertReviewPage($session, $available_paths, $available_paths_warning, $missing_paths, $details); $this->drupalPostForm(NULL, [], t('Perform upgrade')); $this->assertText(t('Congratulations, you upgraded Drupal!')); @@ -148,7 +150,7 @@ public function testMigrateUpgradeExecute() { // Need to update available and missing path lists. $all_available = $this->getAvailablePaths(); - $all_available[] = 'aggregator'; + $all_available[] = ['aggregator', 1]; $all_missing = $this->getMissingPaths(); $all_missing = array_diff($all_missing, ['aggregator']); $this->assertReviewPage($session, $all_available, $all_missing); diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeI18nReviewPageTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeI18nReviewPageTestBase.php index 8a57115edf..f490717fc1 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeI18nReviewPageTestBase.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeI18nReviewPageTestBase.php @@ -38,8 +38,10 @@ public function testMigrateUpgradeReviewPage() { // Test the upgrade paths. $available_paths = $this->getAvailablePaths(); + $available_paths_warning = $this->getAvailablePathsWarning(); $missing_paths = $this->getMissingPaths(); - $this->assertUpgradePaths($session, $available_paths, $missing_paths); + $details = $this->getDetails(); + $this->assertUpgradePaths($session, $available_paths, $available_paths_warning, $missing_paths, $details); } } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeReviewPageTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeReviewPageTestBase.php index 54c50d5516..0782877fe0 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeReviewPageTestBase.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeReviewPageTestBase.php @@ -63,9 +63,10 @@ public function testMigrateUpgradeReviewPage() { // Test the upgrade paths. $available_paths = $this->getAvailablePaths(); + $available_paths_warning = $this->getAvailablePathsWarning(); $missing_paths = $this->getMissingPaths(); - $this->assertUpgradePaths($session, $available_paths, $missing_paths); - $this->assertDetails($session, $this->getDetails()); + $details = $this->getDetails(); + $this->assertUpgradePaths($session, $available_paths, $available_paths_warning, $missing_paths, $details); // Check there are no errors when a module in noUpgradePaths is not in the // source system tables. Test with a module that is listed in noUpgradePaths @@ -83,11 +84,17 @@ public function testMigrateUpgradeReviewPage() { $this->drupalPostForm(NULL, $this->edits, t('Review upgrade')); $this->drupalPostForm(NULL, [], t('I acknowledge I may lose data. Continue anyway.')); - // Test the upgrade paths. + // Test the upgrade paths. First remove the module from the available paths + // list. $available_paths = $this->getAvailablePaths(); - $available_paths = array_diff($available_paths, [$module]); - $missing_paths = $this->getMissingPaths(); - $this->assertUpgradePaths($session, $available_paths, $missing_paths); + foreach($available_paths as $key => $value) { + if (in_array($module, $value)) { + unset($available_paths[$key]); + break; + } + } + $available_paths_warning = $this->getAvailablePathsWarning(); + $this->assertUpgradePaths($session, $available_paths, $available_paths_warning, $missing_paths, $details); } /** 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 0cdb904978..404a7d3b78 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php @@ -104,39 +104,47 @@ protected function tearDown() { * The web-assert session. * @param array $available_paths * An array of modules that will be upgraded. + * @param array $available_paths_warning + * An array of modules where the migration path is incomplete. * @param array $missing_paths * An array of modules that will not be upgraded. + * @param array $details + * An array of detail messages displayed on the review page. */ - protected function assertUpgradePaths(WebAssert $session, array $available_paths, array $missing_paths) { + protected function assertUpgradePaths(WebAssert $session, array $available_paths, array $available_paths_warning, array $missing_paths, array $details) { // Test the available migration paths. + $total_available_paths = 0; foreach ($available_paths as $available) { - $session->elementExists('xpath', "//span[contains(@class, 'checked') and text() = '$available']"); - $session->elementNotExists('xpath', "//span[contains(@class, 'error') and text() = '$available']"); + $session->elementsCount('xpath', "//span[contains(@class, 'checked') and text() = '$available[0]']", $available[1]); + $total_available_paths += $available[1]; + $session->elementNotExists('xpath', "//span[contains(@class, 'error') and text() = '$available[0]']"); + } + + // Test the available migration paths with a warning status.. + $total_available_paths_warning = 0; + foreach ($available_paths_warning as $available) { + $session->elementsCount('xpath', "//span[contains(@class, 'warning') and text() = '$available[0]']", $available[1]); + $total_available_paths_warning += $available[1]; + $session->elementNotExists('xpath', "//span[contains(@class, 'error') and text() = '$available[0]']"); } // Test the missing migration paths. foreach ($missing_paths as $missing) { $session->elementExists('xpath', "//span[contains(@class, 'error') and text() = '$missing']"); $session->elementNotExists('xpath', "//span[contains(@class, 'checked') and text() = '$missing']"); + $session->elementNotExists('xpath', "//span[contains(@class, 'warning') and text() = '$missing']"); } - // Test the total count of missing and available paths. + // Test the total count of missing, available and warning. $session->elementsCount('xpath', "//span[contains(@class, 'upgrade-analysis-report__status-icon--error')]", count($missing_paths)); - $session->elementsCount('xpath', "//span[contains(@class, 'upgrade-analysis-report__status-icon--checked')]", count($available_paths)); - } + $session->elementsCount('xpath', "//span[contains(@class, 'upgrade-analysis-report__status-icon--checked')]", $total_available_paths); + $session->elementsCount('xpath', "//span[contains(@class, 'upgrade-analysis-report__status-icon--warning')]", $total_available_paths_warning); - /** - * Tests the displayed upgrade paths. - * - * @param \Drupal\Tests\WebAssert $session - * The web-assert session. - * @param array $details - * An array of detail messages displayed on the review page. - */ - protected function assertDetails(WebAssert $session, array $details = []) { + // Tests the displayed details messages. foreach ($details as $detail) { - $session->pageTextNotContains($detail); + $session->pageTextContains($detail[0]); } + } /** @@ -164,6 +172,14 @@ protected function assertDetails(WebAssert $session, array $details = []) { abstract protected function getAvailablePaths(); /** + * Gets the available upgrade paths. + * + * @return string[] + * An array of available upgrade paths. + */ + abstract protected function getAvailablePathsWarning(); + + /** * Gets the missing upgrade paths. * * @return string[] @@ -191,13 +207,17 @@ protected function assertDetails(WebAssert $session, array $details = []) { * Helper method to assert the text on the 'Upgrade analysis report' page. * * @param \Drupal\Tests\WebAssert $session - * The current session. - * @param array $all_available - * Array of modules that will be upgraded. - * @param array $all_missing - * Array of modules that will not be upgraded. + * The web-assert session. + * @param array $available_paths + * An array of modules that will be upgraded. + * @param array $available_paths_warning + * An array of modules where the migration path is incomplete. + * @param array $missing_paths + * An array of modules that will not be upgraded. + * @param array $details + * An array of detail messages displayed on the review page. */ - protected function assertReviewPage(WebAssert $session, array $all_available, array $all_missing) { + protected function assertReviewPage(WebAssert $session, array $available_paths, array $available_paths_warning, array $missing_paths, array $details) { $this->assertText('What will be upgraded?'); // Ensure there are no errors about the missing modules from the test module. @@ -207,17 +227,7 @@ protected function assertReviewPage(WebAssert $session, array $all_available, ar // Ensure there are no errors about any other missing migration providers. $session->pageTextNotContains(t('module not found')); - // Test the available migration paths. - foreach ($all_available as $available) { - $session->elementExists('xpath', "//span[contains(@class, 'checked') and text() = '$available']"); - $session->elementNotExists('xpath', "//span[contains(@class, 'error') and text() = '$available']"); - } - - // Test the missing migration paths. - foreach ($all_missing as $missing) { - $session->elementExists('xpath', "//span[contains(@class, 'error') and text() = '$missing']"); - $session->elementNotExists('xpath', "//span[contains(@class, 'checked') and text() = '$missing']"); - } + $this->assertUpgradePaths($session, $available_paths, $available_paths_warning, $missing_paths, $details); } /** diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php index ca7d32e671..5b89bd768e 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php @@ -47,88 +47,95 @@ protected function getSourceBasePath() { */ protected function getAvailablePaths() { return [ - 'aggregator', - 'block', - 'book', - 'comment', - 'contact', - 'content', - 'date', - 'dblog', - 'email', - 'filefield', - 'filter', - 'forum', - 'imagecache', - 'imagefield', - 'language', - 'link', - 'locale', - 'menu', - 'node', - 'nodereference', - 'optionwidgets', - 'path', - 'profile', - 'search', - 'statistics', - 'syslog', - 'system', - 'taxonomy', - 'text', - 'update', - 'upload', - 'user', - 'userreference', + ['aggregator', 1], + ['block', 2], + ['book', 1], + ['comment', 1], + ['contact', 1], + ['content', 2], + ['date', 1], + ['dblog', 1], + ['email', 1], + ['filefield', 1], + ['filter', 1], + ['forum', 1], + ['imagecache', 1], + ['imagefield', 1], + ['language', 1], + ['link', 1], + ['locale', 2], + ['menu', 3], + ['node', 2], + ['nodereference', 1], + ['optionwidgets', 1], + ['path', 1], + ['profile', 1], + ['search', 1], + ['statistics', 1], + ['syslog', 1], + ['system', 3], + ['taxonomy', 2], + ['text', 1], + ['update', 1], + ['upload', 1], + ['user', 1], + ['userreference', 1], // Include modules that do not have an upgrade path, defined in the // $noUpgradePath property in MigrateUpgradeForm. - 'blog', - 'blogapi', - 'calendarsignup', - 'color', - 'content_copy', - 'content_multigroup', - 'content_permissions', - 'date_api', - 'date_locale', - 'date_php4', - 'date_popup', - 'date_repeat', - 'date_timezone', - 'date_tools', - 'datepicker', - 'ddblock', - 'event', - 'fieldgroup', - 'filefield_meta', - 'help', - 'i18n', - 'i18nstrings', - 'imageapi', - 'imageapi_gd', - 'imageapi_imagemagick', - 'imagecache_ui', - 'jquery_ui', - 'nodeaccess', - 'number', - 'openid', - 'php', - 'ping', - 'poll', - 'throttle', - 'tracker', - 'translation', - 'trigger', - 'variable', - 'variable_admin', - 'views_export', - 'views_ui', + ['blog', 1], + ['blogapi', 1], + ['calendarsignup', 1], + ['color', 1], + ['content_copy', 1], + ['content_multigroup', 1], + ['content_permissions', 1], + ['date_api', 1], + ['date_locale', 1], + ['date_php4', 1], + ['date_popup', 1], + ['date_repeat', 1], + ['date_timezone', 1], + ['date_tools', 1], + ['datepicker', 1], + ['ddblock', 1], + ['event', 1], + ['fieldgroup', 1], + ['filefield_meta', 1], + ['help', 1], + ['i18n', 1], + ['i18nstrings', 1], + ['imageapi', 1], + ['imageapi_gd', 1], + ['imageapi_imagemagick', 1], + ['imagecache_ui', 1], + ['jquery_ui', 1], + ['nodeaccess', 1], + ['number', 1], + ['openid', 1], + ['php', 1], + ['ping', 1], + ['poll', 1], + ['throttle', 1], + ['tracker', 1], + ['translation', 1], + ['trigger', 1], + ['variable', 1], + ['variable_admin', 1], + ['views_export', 1], + ['views_ui', 1], ]; } /** * {@inheritdoc} */ + protected function getAvailablePathsWarning() { + return []; + } + + /** + * {@inheritdoc} + */ protected function getMissingPaths() { return [ 'devel', @@ -152,7 +159,11 @@ protected function getMissingPaths() { * {@inheritdoc} */ protected function getDetails() { - return []; + return [ + "Test of 'incomplete' status", + 'Known issues when upgrading from Drupal 6 or 7 to Drupal 8', + 'Upgrading multilingual Drupal 6 to Drupal 8', + ]; } } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php index fabbccb151..e0ee6fa9f1 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php @@ -164,6 +164,13 @@ protected function getAvailablePaths() { /** * {@inheritdoc} */ + protected function getAvailablePathsWarning() { + return []; + } + + /** + * {@inheritdoc} + */ protected function getMissingPaths() { return [ 'i18nblocks', diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php index 3b201569d1..47b81596ee 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php @@ -29,6 +29,7 @@ class MigrateUpgrade6ReviewPageTest extends MigrateUpgradeReviewPageTestBase { 'update', // Required for translation migrations. 'migrate_drupal_multilingual', + 'migration_status_incomplete_test', ]; /** @@ -51,86 +52,98 @@ protected function getSourceBasePath() { */ protected function getAvailablePaths() { return [ - 'aggregator', - 'block', - 'book', - 'comment', - 'contact', - 'content', - 'date', - 'dblog', - 'email', - 'filefield', - 'filter', - 'forum', - 'i18n', - 'i18nblocks', - 'i18nmenu', - 'i18nprofile', - 'i18nstrings', - 'i18ntaxonomy', - 'imagecache', - 'imagefield', - 'language', - 'link', - 'locale', - 'menu', - 'node', - 'nodereference', - 'optionwidgets', - 'path', - 'profile', - 'search', - 'statistics', - 'syslog', - 'system', - 'taxonomy', - 'text', - 'update', - 'upload', - 'user', - 'userreference', - // Include modules that do not have an upgrade path, defined in the + ['aggregator', 1], + ['block', 2], + ['book', 1], + ['comment', 1], + ['contact', 1], + ['content', 2], + ['date', 1], + ['dblog', 1], + ['email', 1], + ['filefield', 1], + ['filter', 1], + ['forum', 1], + ['i18n', 1], + ['i18nstrings', 1], + ['imagecache', 1], + ['imagefield', 1], + ['language', 1], + ['link', 1], + ['locale', 3], + ['menu', 3], + ['node', 2], + ['nodereference', 1], + ['optionwidgets', 1], + ['path', 1], + ['profile', 1], + ['search', 1], + ['statistics', 1], + ['syslog', 1], + ['system', 3], + ['taxonomy', 2], + ['text', 1], + ['update', 1], + ['upload', 1], + ['user', 1], + ['userreference', 1], + // Include modules that do not have an upgrade path,1], defined in the // $noUpgradePath property in MigrateUpgradeForm. - 'blog', - 'blogapi', - 'calendarsignup', - 'color', - 'content_copy', - 'content_multigroup', - 'content_permissions', - 'date_api', - 'date_locale', - 'date_php4', - 'date_popup', - 'date_repeat', - 'date_timezone', - 'date_tools', - 'datepicker', - 'ddblock', - 'event', - 'fieldgroup', - 'filefield_meta', - 'help', - 'imageapi', - 'imageapi_gd', - 'imageapi_imagemagick', - 'imagecache_ui', - 'jquery_ui', - 'nodeaccess', - 'number', - 'openid', - 'php', - 'ping', - 'poll', - 'throttle', - 'tracker', - 'translation', - 'trigger', - 'variable', - 'variable_admin', - 'views_export', - 'views_ui', + ['blog', 1], + ['blogapi', 1], + ['calendarsignup', 1], + ['color', 1], + ['content_copy', 1], + ['content_multigroup', 1], + ['content_permissions', 1], + ['date_api', 1], + ['date_locale', 1], + ['date_php4', 1], + ['date_popup', 1], + ['date_repeat', 1], + ['date_timezone', 1], + ['date_tools', 1], + ['datepicker', 1], + ['ddblock', 1], + ['event', 1], + ['fieldgroup', 1], + ['filefield_meta', 1], + ['help', 1], + ['imageapi', 1], + ['imageapi_gd', 1], + ['imageapi_imagemagick', 1], + ['imagecache_ui', 1], + ['jquery_ui', 1], + ['nodeaccess', 1], + ['number', 1], + ['openid', 1], + ['php', 1], + ['ping', 1], + ['poll', 1], + ['throttle', 1], + ['tracker', 1], + ['translation', 1], + ['trigger', 1], + ['variable', 1], + ['variable_admin', 1], + ['views_export', 1], + ['views_ui', 1], + ]; + } + + protected function getAvailablePathsWarning() { + return [ + // The block warning is from migration_status_incomplete_test which has + // a source_module of block. + ['block', 1], + ['i18n', 1], + ['i18nblocks', 1], + ['i18nmenu', 1], + ['i18nprofile', 1], + ['i18ntaxonomy', 1], + ['menu', 1], + ['node', 1], + ['taxonomy', 1], ]; } @@ -157,7 +170,9 @@ protected function getMissingPaths() { */ protected function getDetails() { return [ - 'See Views', + "Test of 'incomplete' status", + 'Known issues when upgrading from Drupal 6 or 7 to Drupal 8', + 'Upgrading multilingual Drupal 6 to Drupal 8', ]; } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php index 15cdf48cae..4dad796412 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php @@ -123,54 +123,66 @@ protected function getEntityCountsIncremental() { */ protected function getAvailablePaths() { return [ - 'aggregator', - 'block', - 'book', - 'comment', - 'contact', - 'content', - 'date', - 'dblog', - 'email', - 'filefield', - 'filter', - 'forum', - 'i18n', - 'i18nblocks', - 'i18nmenu', - 'i18nprofile', - 'i18nstrings', - 'i18ntaxonomy', - 'imagecache', - 'imagefield', - 'language', - 'link', - 'locale', - 'menu', - 'node', - 'nodereference', - 'optionwidgets', - 'path', - 'profile', - 'search', - 'statistics', - 'system', - 'taxonomy', - 'text', - 'upload', - 'user', - 'userreference', + ['aggregator', 1], + ['block', 2], + ['book', 1], + ['comment', 1], + ['contact', 1], + ['content', 2], + ['date', 1], + ['dblog', 1], + ['email', 1], + ['filefield', 1], + ['filter', 1], + ['forum', 1], + ['i18n', 1], + ['i18nstrings', 1], + ['imagecache', 1], + ['imagefield', 1], + ['language', 1], + ['link', 1], + ['locale', 3], + ['menu', 3], + ['node', 2], + ['nodereference', 1], + ['optionwidgets', 1], + ['path', 1], + ['profile', 1], + ['search', 1], + ['statistics', 1], + ['system', 3], + ['taxonomy', 2], + ['text', 1], + ['upload', 1], + ['user', 1], + ['userreference', 1], // Include modules that do not have an upgrade path and are enabled in the // source database, defined in the $noUpgradePath property // in MigrateUpgradeForm. - 'date_api', - 'date_timezone', - 'event', - 'imageapi', - 'number', - 'php', - 'profile', - 'variable_admin', + ['date_api', 1], + ['date_timezone', 1], + ['event', 1], + ['imageapi', 1], + ['number', 1], + ['php', 1], + ['profile', 1], + ['variable_admin', 1], + ]; + } + + /** + * {@inheritdoc} + */ + protected function getAvailablePathsWarning() { + return [ + ['i18n', 1], + ['i18nblocks', 1], + ['i18nmenu', 1], + ['i18nprofile', 1], + ['i18ntaxonomy', 1], + ['menu', 1], + ['node', 1], + ['taxonomy', 1], ]; } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php index a8ed798656..e3a46ea31a 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php @@ -165,6 +165,13 @@ protected function getAvailablePaths() { /** * {@inheritdoc} */ + protected function getAvailablePathsWarning() { + return []; + } + + /** + * {@inheritdoc} + */ protected function getMissingPaths() { return [ 'rdf', @@ -176,6 +183,7 @@ protected function getMissingPaths() { ]; } + /** * {@inheritdoc} */ diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php index d5a5bff146..6d57166982 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php @@ -50,85 +50,95 @@ protected function getSourceBasePath() { */ protected function getAvailablePaths() { return [ - 'aggregator', - 'block', - 'book', - 'color', - 'comment', - 'contact', - 'date', - 'dblog', - 'email', - 'field', - 'field_sql_storage', - 'file', - 'filter', - 'forum', - 'image', - 'language', - 'link', - 'list', - 'locale', - 'menu', - 'node', - 'number', - 'options', - 'path', - 'phone', - 'profile', - 'search', - 'shortcut', - 'statistics', - 'syslog', - 'system', - 'taxonomy', - 'text', - 'tracker', - 'update', - 'user', + ['aggregator', 1], + ['block', 2], + ['book', 1], + ['color', 1], + ['comment', 1], + ['contact', 1], + ['date', 1], + ['dblog', 1], + ['email', 1], + ['field', 1], + ['field_sql_storage', 1], + ['file', 1], + ['filter', 1], + ['forum', 1], + ['image', 1], + ['language', 1], + ['link', 1], + ['list', 1], + ['locale', 2], + ['menu', 3], + ['node', 2], + ['number', 1], + ['options', 2], + ['path', 1], + ['phone', 1], + ['profile', 1], + ['search', 1], + ['shortcut', 1], + ['statistics', 1], + ['syslog', 1], + ['system', 2], + ['taxonomy',2], + ['text', 1], + ['tracker', 1], + ['update', 1], + ['user', 1], // Include modules that do not have an upgrade path, defined in the // $noUpgradePath property in MigrateUpgradeForm. - 'blog', - 'bulk_export', - 'contextual', - 'ctools', - 'ctools_access_ruleset', - 'ctools_ajax_sample', - 'ctools_custom_content', - 'dashboard', - 'date_all_day', - 'date_api', - 'date_context', - 'date_migrate', - 'date_popup', - 'date_repeat', - 'date_repeat_field', - 'date_tools', - 'date_views', - 'entity', - 'entity_feature', - 'entity_token', - 'entityreference', - 'entity_translation', - 'field_ui', - 'help', - 'openid', - 'overlay', - 'page_manager', - 'php', - 'poll', - 'search_embedded_form', - 'search_extra_type', - 'search_node_tags', - 'simpletest', - 'stylizer', - 'term_depth', - 'title', - 'toolbar', - 'translation', - 'trigger', - 'views_content', - 'views_ui', + ['blog', 1], + ['bulk_export', 1], + ['contextual', 1], + ['ctools', 1], + ['ctools_access_ruleset', 1], + ['ctools_ajax_sample', 1], + ['ctools_custom_content', 1], + ['dashboard', 1], + ['date_all_day', 1], + ['date_api', 1], + ['date_context', 1], + ['date_migrate', 1], + ['date_popup', 1], + ['date_repeat', 1], + ['date_repeat_field', 1], + ['date_tools', 1], + ['date_views', 1], + ['entity', 1], + ['entity_feature', 1], + ['entity_token', 1], + ['entityreference', 1], + ['field_ui', 1], + ['help', 1], + ['openid', 1], + ['overlay', 1], + ['page_manager', 1], + ['php', 1], + ['poll', 1], + ['search_embedded_form', 1], + ['search_extra_type', 1], + ['search_node_tags', 1], + ['simpletest', 1], + ['stylizer', 1], + ['term_depth', 1], + ['title', 1], + ['toolbar', 1], + ['translation', 1], + ['trigger', 1], + ['views_content', 1], + ['views_ui', 1], + ]; + } + + /** + * {@inheritdoc} + */ + protected function getAvailablePathsWarning() { + return [ + ['entity_translation', 1], + ['menu', 1], + ['node', 1], ]; } @@ -146,7 +156,10 @@ protected function getMissingPaths() { * {@inheritdoc} */ protected function getDetails() { - return []; + return [ + 'Known issues when upgrading from Drupal 6 or 7 to Drupal 8', + 'Upgrading multilingual Drupal 7 to Drupal 8', 'warning' + ]; } } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php index a5000bbe2d..0f80872706 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php @@ -120,53 +120,66 @@ protected function getEntityCountsIncremental() { */ protected function getAvailablePaths() { return [ - 'aggregator', - 'block', - 'book', - 'color', - 'comment', - 'contact', - 'date', - 'dblog', - 'email', - 'entityreference', - 'field', - 'field_sql_storage', - 'file', - 'filter', - 'forum', - 'image', - 'language', - 'link', - 'list', - 'locale', - 'menu', - 'node', - 'number', - 'options', - 'path', - 'phone', - 'search', - 'shortcut', - 'statistics', - 'system', - 'taxonomy', - 'text', - 'user', + ['aggregator', 1], + ['block', 2], + ['book', 1], + ['color', 1], + ['comment', 1], + ['contact', 1], + ['ctools', 1], + ['date', 1], + ['dblog', 1], + ['email', 1], + ['entityreference', 1], + ['field', 1], + ['field_sql_storage', 1], + ['file', 1], + ['filter', 1], + ['forum', 1], + ['image', 1], + ['language', 1], + ['link', 1], + ['list', 1], + ['locale', 2], + ['menu', 3], + ['node', 2], + ['number', 1], + ['options', 2], + ['path', 1], + ['phone', 1], + ['search', 1], + ['shortcut', 1], + ['statistics', 1], + ['system', 2], + ['taxonomy', 2], + ['text', 1], + ['title', 1], + ['user', 1], // Include modules that do not have an upgrade path and are enabled in the // source database, defined in the $noUpgradePath property // in MigrateUpgradeForm. - 'blog', - 'contextual', - 'date_api', - 'entity', - 'field_ui', - 'help', - 'php', - 'simpletest', - 'toolbar', - 'translation', - 'trigger', + ['blog', 1], + ['contextual', 1], + ['date_api', 1], + ['entity', 1], + ['field_ui', 1], + ['help', 1], + ['php', 1], + ['simpletest', 1], + ['toolbar', 1], + ['translation', 1], + ['trigger', 1], + ]; + } + + /** + * {@inheritdoc} + */ + protected function getAvailablePathsWarning() { + return [ + ['entity_translation', 1], + ['menu', 1], + ['node', 1], ]; } diff --git a/core/modules/rdf/rdf.info.yml b/core/modules/rdf/rdf.info.yml index fa935fafe7..b7a8eda30b 100644 --- a/core/modules/rdf/rdf.info.yml +++ b/core/modules/rdf/rdf.info.yml @@ -11,4 +11,4 @@ migrate: - version: 7 status: incomplete - description: See Details + description: See Known issues when upgrading from Drupal 6 or 7 to Drupal 8 diff --git a/core/modules/views/views.info.yml b/core/modules/views/views.info.yml index fdd2a038a3..7893237440 100644 --- a/core/modules/views/views.info.yml +++ b/core/modules/views/views.info.yml @@ -10,8 +10,8 @@ migrate: - version: 6 status: incomplete - description: See Views + description: See Known issues when upgrading from Drupal 6 or 7 to Drupal 8 - version: 7 status: incomplete - description: See Views + description: See Known issues when upgrading from Drupal 6 or 7 to Drupal 8