Commit 7a7050cd authored by Emily Mathew's avatar Emily Mathew
Browse files

Issue #3199236 by omkar.podey, mparker17, Wim Leers, narendraR: Migrate...

Issue #3199236 by omkar.podey, mparker17, Wim Leers, narendraR: Migrate configuration from 6.x-1.x and 7.x-1.x
parent 027a7ac2
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
id: d6_search404_settings
label: Search404 settings
migration_tags:
  - Drupal 6
  - Configuration
source:
  plugin: variable
  variables:
    # Note the 6.x-1.x settings search404_do_google_cse_adv, and
    # search404_do_fuzzysearch have no equivalents in the 2.x branch.
    - search404_block_show
    - search404_custom_search_path
    - search404_disable_error_message
    - search404_do_custom_search
    - search404_do_google_cse
    - search404_do_search_by_page
    - search404_first
    - search404_ignore
    - search404_ignore_extensions
    - search404_ignore_query
    - search404_jump
    - search404_page_text
    - search404_page_title
    - search404_redirect_301
    - search404_regex
    - search404_skip_auto_search
    - search404_use_or
    - search404_use_search_engine
  source_module: search404
process:
  search404_custom_search_path: search404_custom_search_path
  search404_disable_error_message: search404_disable_error_message
  search404_do_custom_search: search404_do_custom_search
  search404_do_google_cse: search404_do_google_cse
  search404_do_search_by_page: search404_do_search_by_page
  search404_first: search404_first
  search404_ignore: search404_ignore
  search404_ignore_extensions: search404_ignore_extensions
  search404_ignore_query: search404_ignore_query
  search404_jump: search404_jump
  search404_page_text: search404_page_text
  search404_page_title: search404_page_title
  search404_redirect_301: search404_redirect_301
  search404_regex: search404_regex
  search404_skip_auto_search: search404_skip_auto_search
  search404_use_or: search404_use_or
  search404_use_search_engine: search404_use_search_engine
destination:
  plugin: config
  config_name: search404.settings
+55 −0
Original line number Diff line number Diff line
id: d7_search404_settings
label: Search404 settings
migration_tags:
  - Drupal 7
  - Configuration
source:
  plugin: variable
  variables:
    # Note the 7.x-1.x settings search404_do_google_cse_adv, and
    # search404_no_redirect have no equivalents in the 2.x branch.
    - search404_custom_search_path
    - search404_disable_error_message
    - search404_do_custom_search
    - search404_do_google_cse
    - search404_do_search_by_page
    - search404_first
    - search404_ignore
    - search404_ignore_extensions
    - search404_ignore_query
    - search404_jump
    - search404_page_text
    - search404_page_title
    - search404_redirect_301
    - search404_regex
    - search404_skip_auto_search
    - search404_use_or
    - search404_use_search_engine
    - search404_ignore_paths
    - search404_first_on_paths
    - search404_search_message
  source_module: search404
process:
  search404_custom_error_message: search404_search_message
  search404_custom_search_path: search404_custom_search_path
  search404_disable_error_message: search404_disable_error_message
  search404_do_custom_search: search404_do_custom_search
  search404_do_google_cse: search404_do_google_cse
  search404_do_search_by_page: search404_do_search_by_page
  search404_first: search404_first
  search404_first_on_paths: search404_first_on_paths
  search404_ignore: search404_ignore
  search404_ignore_extensions: search404_ignore_extensions
  search404_ignore_paths: search404_ignore_paths
  search404_ignore_query: search404_ignore_query
  search404_jump: search404_jump
  search404_page_text: search404_page_text
  search404_page_title: search404_page_title
  search404_redirect_301: search404_redirect_301
  search404_regex: search404_regex
  search404_skip_auto_search: search404_skip_auto_search
  search404_use_or: search404_use_or
  search404_use_search_engine: search404_use_search_engine
destination:
  plugin: config
  config_name: search404.settings
+5 −0
Original line number Diff line number Diff line
finished:
  6:
    search404: search404
  7:
    search404: search404
+26 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\Tests\search404\Kernel;

use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
use Drupal\Tests\migrate_drupal\Traits\ValidateMigrationStateTestTrait;

/**
 * Tests that the search404 module has a declared D6 migration status.
 *
 * ValidateMigrationStateTestTrait::testMigrationState() will succeed if the
 * modules enabled in \Drupal\Tests\KernelTestBase::bootKernel() have a valid
 * migration status (i.e.: finished or not_finished); but will fail if they do
 * not have a declared migration status.
 *
 * @group search404
 */
class ValidateD6MigrationStateTest extends MigrateDrupal6TestBase {
  use ValidateMigrationStateTestTrait;

  /**
   * {@inheritdoc}
   */
  public static $modules = ['search404'];

}
+116 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\Tests\search404\Kernel;

use Drupal\Core\Database\Database;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
use Drupal\Tests\search404\Traits\ValidateSettingsMigrationTrait;

/**
 * Tests migration of search404 settings from D6 to config.
 *
 * @group search404
 */
class ValidateD6SettingsMigrationTest extends MigrateDrupal6TestBase {
  use ValidateSettingsMigrationTrait;

  /**
   * The migration this test is testing.
   *
   * @var string
   */
  const MIGRATION_UNDER_TEST = 'd6_search404_settings';

  /**
   * {@inheritdoc}
   */
  protected static $modules = ['search404'];

  /**
   * Test that variables are successfully migrated to configuration.
   */
  public function testMigration() {
    // Set up fixtures in the source database.
    $fixtureCustomSearchPath = $this->randomString();
    $this->setUpD6Variable('search404_custom_search_path', $fixtureCustomSearchPath);
    $fixtureDisableErrorMessage = $this->randomBoolean();
    $this->setUpD6Variable('search404_disable_error_message', $fixtureDisableErrorMessage);
    $fixtureDoCustomSearch = $this->randomBoolean();
    $this->setUpD6Variable('search404_do_custom_search', $fixtureDoCustomSearch);
    $fixtureDoGoogleCse = $this->randomBoolean();
    $this->setUpD6Variable('search404_do_google_cse', $fixtureDoGoogleCse);
    $fixtureDoSearchByPage = $this->randomBoolean();
    $this->setUpD6Variable('search404_do_search_by_page', $fixtureDoSearchByPage);
    $fixtureFirst = $this->randomBoolean();
    $this->setUpD6Variable('search404_first', $fixtureFirst);
    $fixtureIgnore = $this->randomSpaceSeparatedWords();
    $this->setUpD6Variable('search404_ignore', $fixtureIgnore);
    $fixtureIgnoreExtensions = $this->randomFileExtensions();
    $this->setUpD6Variable('search404_ignore_extensions', $fixtureIgnoreExtensions);
    $fixtureIgnoreQuery = $this->randomFileExtensions();
    $this->setUpD6Variable('search404_ignore_query', $fixtureIgnoreQuery);
    $fixtureJump = $this->randomBoolean();
    $this->setUpD6Variable('search404_jump', $fixtureJump);
    $fixturePageText = $this->getRandomGenerator()->paragraphs(2);
    $this->setUpD6Variable('search404_page_text', $fixturePageText);
    $fixturePageTitle = $this->randomString();
    $this->setUpD6Variable('search404_page_title', $fixturePageTitle);
    $fixtureRedirect301 = $this->randomBoolean();
    $this->setUpD6Variable('search404_redirect_301', $fixtureRedirect301);
    $fixtureRegex = $this->randomRegex();
    $this->setUpD6Variable('search404_regex', $fixtureRegex);
    $fixtureSkipAutoSearch = $this->randomBoolean();
    $this->setUpD6Variable('search404_skip_auto_search', $fixtureSkipAutoSearch);
    $fixtureUseOr = $this->randomBoolean();
    $this->setUpD6Variable('search404_use_or', $fixtureUseOr);
    $fixtureUseSearchEngine = $this->randomBoolean();
    $this->setUpD6Variable('search404_use_search_engine', $fixtureUseSearchEngine);

    // Run the migration.
    $this->executeMigrations([self::MIGRATION_UNDER_TEST]);

    // Verify the variables with migrations are now present in the destination
    // site.
    $config = $this->config('search404.settings');
    $this->assertSame($fixtureCustomSearchPath, $config->get('search404_custom_search_path'));
    $this->assertSame($fixtureDisableErrorMessage, $config->get('search404_disable_error_message'));
    $this->assertSame($fixtureDoCustomSearch, $config->get('search404_do_custom_search'));
    $this->assertSame($fixtureDoGoogleCse, $config->get('search404_do_google_cse'));
    $this->assertSame($fixtureDoSearchByPage, $config->get('search404_do_search_by_page'));
    $this->assertSame($fixtureFirst, $config->get('search404_first'));
    $this->assertSame($fixtureIgnore, $config->get('search404_ignore'));
    $this->assertSame($fixtureIgnoreExtensions, $config->get('search404_ignore_extensions'));
    $this->assertSame($fixtureIgnoreQuery, $config->get('search404_ignore_query'));
    $this->assertSame($fixtureJump, $config->get('search404_jump'));
    $this->assertSame($fixturePageText, $config->get('search404_page_text'));
    $this->assertSame($fixturePageTitle, $config->get('search404_page_title'));
    $this->assertSame($fixtureRedirect301, $config->get('search404_redirect_301'));
    $this->assertSame($fixtureRegex, $config->get('search404_regex'));
    $this->assertSame($fixtureSkipAutoSearch, $config->get('search404_skip_auto_search'));
    $this->assertSame($fixtureUseOr, $config->get('search404_use_or'));
    $this->assertSame($fixtureUseSearchEngine, $config->get('search404_use_search_engine'));
  }

  /**
   * Set up a D6 variable to be migrated.
   *
   * @param string $name
   *   The name of the variable to be set.
   * @param mixed $value
   *   The value of the variable to be set.
   */
  protected function setUpD6Variable($name, $value) {
    $this->assertIsString($name, 'Name must be a string');

    Database::getConnection('default', 'migrate')
      ->upsert('variable')
      ->key('name')
      ->fields(['name', 'value'])
      ->values([
        'name' => $name,
        'value' => serialize($value),
      ])
      ->execute();
  }

}
Loading