You are here

public function MultilingualReviewPageTestBase::testMigrateUpgradeReviewPage in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/migrate_drupal_ui/tests/src/Functional/MultilingualReviewPageTestBase.php \Drupal\Tests\migrate_drupal_ui\Functional\MultilingualReviewPageTestBase::testMigrateUpgradeReviewPage()

Tests the migrate upgrade review form.

The upgrade review form displays a list of modules that will be upgraded and a list of modules that will not be upgraded. This test is to ensure that the review page works correctly for all contributed Drupal 6 and Drupal 7 modules that have moved to core, e.g. Views, and for modules that were in Drupal 6 or Drupal 7 core but are not in Drupal 8 core, e.g. Overlay.

To do this all modules in the source fixtures are enabled, except test and example modules. This means that we can test that the modules that do not need any migrations, such as Overlay, since there will be no available migrations which declare those modules as their source_module. It is assumed that the test fixtures include all modules that have moved to or dropped from core.

The upgrade review form will also display errors for each migration that does not have a source_module definition. That function is not tested here.

See also

\Drupal\Tests\migrate_drupal_ui\Functional\MigrateUpgradeExecuteTestBase

1 method overrides MultilingualReviewPageTestBase::testMigrateUpgradeReviewPage()
NoMultilingualReviewPageTestBase::testMigrateUpgradeReviewPage in core/modules/migrate_drupal_ui/tests/src/Functional/NoMultilingualReviewPageTestBase.php
Tests the review page when content_translation is enabled.

File

core/modules/migrate_drupal_ui/tests/src/Functional/MultilingualReviewPageTestBase.php, line 43

Class

MultilingualReviewPageTestBase
Provides a base class for testing the review step of the Upgrade form.

Namespace

Drupal\Tests\migrate_drupal_ui\Functional

Code

public function testMigrateUpgradeReviewPage() {
  $this
    ->prepare();

  // Start the upgrade process.
  $this
    ->submitCredentialForm();
  $this
    ->submitForm([], 'I acknowledge I may lose data. Continue anyway.');

  // Test the upgrade paths.
  $this
    ->assertReviewForm();

  // Check there are no errors when a module does not have any migrations and
  // does not need any. Test with a module that is 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);
  $query
    ->execute();

  // Start the upgrade process.
  $this
    ->drupalGet('/upgrade');
  $this
    ->submitForm([], 'Continue');
  $this
    ->submitForm($this->edits, 'Review upgrade');
  $this
    ->submitForm([], 'I acknowledge I may lose data. Continue anyway.');

  // Test the upgrade paths. First remove the module from the available paths
  // list.
  $available_paths = $this
    ->getAvailablePaths();
  $available_paths = array_diff($available_paths, [
    $module_name,
  ]);
  $this
    ->assertReviewForm($available_paths);
}