Loading migrations/d6_search404_settings.yml 0 → 100644 +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 migrations/d7_search404_settings.yml 0 → 100644 +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 migrations/state/search404.migrate_drupal.yml 0 → 100644 +5 −0 Original line number Diff line number Diff line finished: 6: search404: search404 7: search404: search404 tests/src/Kernel/ValidateD6MigrationStateTest.php 0 → 100644 +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']; } tests/src/Kernel/ValidateD6SettingsMigrationTest.php 0 → 100644 +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
migrations/d6_search404_settings.yml 0 → 100644 +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
migrations/d7_search404_settings.yml 0 → 100644 +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
migrations/state/search404.migrate_drupal.yml 0 → 100644 +5 −0 Original line number Diff line number Diff line finished: 6: search404: search404 7: search404: search404
tests/src/Kernel/ValidateD6MigrationStateTest.php 0 → 100644 +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']; }
tests/src/Kernel/ValidateD6SettingsMigrationTest.php 0 → 100644 +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(); } }