diff --git a/.vortex/docs/content/drupal/README.mdx b/.vortex/docs/content/drupal/README.mdx
index 62d297c83..60ff163a3 100644
--- a/.vortex/docs/content/drupal/README.mdx
+++ b/.vortex/docs/content/drupal/README.mdx
@@ -32,6 +32,7 @@ You would need to add more modules and themes once you finish the initial setup.
| [`pathauto`](https://www.drupal.org/project/pathauto) | Automatically generates URL/path aliases for content. |
| [`redirect`](https://www.drupal.org/project/redirect) | Provides URL redirection management. |
| [`redis`](https://www.drupal.org/project/redis) | Integrates Redis caching backend. |
+| [`reroute_email`](https://www.drupal.org/project/reroute_email) | Intercepts outgoing emails and reroutes them to a configurable address. |
| [`robotstxt`](https://www.drupal.org/project/robotstxt) | Manages the robots.txt file for controlling search engine crawler access. |
| [`search_api`](https://www.drupal.org/project/search_api) | Provides a flexible framework for creating search pages. |
| [`search_api_solr`](https://www.drupal.org/project/search_api_solr) | Integrates Apache Solr with Search API. |
diff --git a/.vortex/docs/content/drupal/settings.mdx b/.vortex/docs/content/drupal/settings.mdx
index e5508d7bc..e35d09c43 100644
--- a/.vortex/docs/content/drupal/settings.mdx
+++ b/.vortex/docs/content/drupal/settings.mdx
@@ -253,6 +253,89 @@ Each settings file should:
+#### Shield
+
+[Shield](https://www.drupal.org/project/shield) restricts access to your site
+by requiring HTTP authentication credentials. **Vortex** configures Shield to
+protect non-production environments from public access while keeping production,
+local development, and CI environments accessible without authentication.
+
+**Environment behavior:**
+
+| Environment | Shield enabled | Reason |
+|-------------|----------------|-------------------------------------------------|
+| Local | No | No need for HTTP auth during local development |
+| CI | No | Automated tests must access the site freely |
+| Dev | **Yes** | Protects development environments from crawlers |
+| Stage | **Yes** | Protects staging environments from public access|
+| Prod | No | Production is publicly accessible |
+
+**Environment variables:**
+
+| Variable | Default | Purpose |
+|-----------------------|----------------------|-------------------------------------------|
+| `DRUPAL_SHIELD_USER` | | HTTP authentication username |
+| `DRUPAL_SHIELD_PASS` | | HTTP authentication password |
+| `DRUPAL_SHIELD_PRINT` | `Restricted access.` | Message shown in the authentication popup |
+
+**Overriding default behavior:**
+
+Set `DRUPAL_SHIELD_DISABLED` to any non-empty value to completely disable Shield
+in an environment where it would otherwise be enabled. This is useful for
+temporary access during debugging or when an environment does not require
+protection.
+
+import ShieldModuleSettingsExample from '!!raw-loader!./../../../../web/sites/default/includes/modules/settings.shield.php';
+
+
+ Example of the `Shield` module `settings.shield.php` file
+
+ {ShieldModuleSettingsExample}
+
+
+
+#### Reroute Email
+
+[Reroute Email](https://www.drupal.org/project/reroute_email) intercepts
+outgoing emails and redirects them to a configurable address instead of the
+intended recipients. This prevents accidental email delivery to real users in
+non-production environments while still allowing email functionality to be
+tested.
+
+**Environment behavior:**
+
+| Environment | Rerouting enabled | Reason |
+|-------------|-------------------|---------------------------------------------------------------|
+| Local | No | Emails are typically not sent in local development |
+| CI | No | Automated tests do not send real emails |
+| Dev | **Yes** | Prevents accidental delivery to real users |
+| Stage | No | Stage may require real email delivery for UAT |
+| Prod | No | Production emails must reach actual recipients |
+
+Rerouting is also enabled in any custom environments (e.g., PR environments)
+that do not match the standard environment types listed above.
+
+**Environment variables:**
+
+| Variable | Default | Purpose |
+|--------------------------------|------------------------------------|------------------------------------------------------|
+| `DRUPAL_REROUTE_EMAIL_ADDRESS` | `webmaster@your-site-domain.example` | Address to receive all rerouted emails |
+| `DRUPAL_REROUTE_EMAIL_ALLOWED` | `*@your-site-domain.example` | Pattern for addresses allowed to bypass rerouting |
+
+**Overriding default behavior:**
+
+Set `DRUPAL_REROUTE_EMAIL_DISABLED` to any non-empty value to completely disable
+email rerouting in an environment where it would otherwise be enabled.
+
+import RerouteEmailModuleSettingsExample from '!!raw-loader!./../../../../web/sites/default/includes/modules/settings.reroute_email.php';
+
+
+ Example of the `Reroute Email` module `settings.reroute_email.php` file
+
+ {RerouteEmailModuleSettingsExample}
+
+
+
### Local overrides
At the end of the `settings.php`, there is an option to include additional local
diff --git a/.vortex/docs/content/features.mdx b/.vortex/docs/content/features.mdx
index f0654c80f..4d66fa782 100644
--- a/.vortex/docs/content/features.mdx
+++ b/.vortex/docs/content/features.mdx
@@ -43,6 +43,7 @@ import {
### Admin modules
- [Environment indicator](https://www.drupal.org/project/environment_indicator) for visual identification
+ - [Reroute Email](https://www.drupal.org/project/reroute_email) for email interception in non-production environments
- [Shield](https://www.drupal.org/project/shield) for HTTP authentication
- [Stage file proxy](https://www.drupal.org/project/stage_file_proxy) for development efficiency
- Configuration for [Search API](https://www.drupal.org/project/search_api) ([Solr](https://www.drupal.org/project/search_api_solr))
diff --git a/.vortex/installer/src/Prompts/Handlers/Modules.php b/.vortex/installer/src/Prompts/Handlers/Modules.php
index 6a6afc26c..1dc8674af 100644
--- a/.vortex/installer/src/Prompts/Handlers/Modules.php
+++ b/.vortex/installer/src/Prompts/Handlers/Modules.php
@@ -130,6 +130,7 @@ public static function getAvailableModules(): array {
'environment_indicator' => 'Environment indicator',
'pathauto' => 'Pathauto',
'redirect' => 'Redirect',
+ 'reroute_email' => 'Reroute email',
'robotstxt' => 'Robots.txt',
'seckit' => 'Seckit',
'shield' => 'Shield',
diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/composer.json b/.vortex/installer/tests/Fixtures/handler_process/_baseline/composer.json
index aab8d5081..7640477c4 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/composer.json
@@ -20,6 +20,7 @@
"drupal/pathauto": "__VERSION__",
"drupal/redirect": "__VERSION__",
"drupal/redis": "__VERSION__",
+ "drupal/reroute_email": "__VERSION__",
"drupal/robotstxt": "__VERSION__",
"drupal/search_api": "__VERSION__",
"drupal/search_api_solr": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/_baseline/scripts/custom/provision-10-example.sh
index 1b2cd49cc..be78d7e7a 100755
--- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/scripts/custom/provision-10-example.sh
@@ -38,7 +38,7 @@ if echo "${environment}" | grep -q -e dev -e stage -e ci -e local; then
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index c3ab1cfc0..f4292d3a6 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -79,6 +79,9 @@ public function testEnvironmentNoOverrides(): void {
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
$config['system.performance']['cache']['page']['max_age'] = 900;
$this->assertConfig($config);
@@ -153,6 +156,9 @@ public function testEnvironmentOverrides(): void {
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
$config['system.performance']['cache']['page']['max_age'] = 1800;
$this->assertConfig($config);
@@ -202,6 +208,9 @@ public function testEnvironmentLocal(): void {
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
$config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
$config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
@@ -251,6 +260,9 @@ public function testEnvironmentLocalContainer(): void {
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
$config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
$config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
@@ -302,6 +314,9 @@ public function testEnvironmentGha(): void {
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
$config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
$config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SwitchableSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SwitchableSettingsTest.php
index b772d2891..dfe09e39b 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SwitchableSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SwitchableSettingsTest.php
@@ -665,6 +665,145 @@ public static function dataProviderShield(): \Iterator {
];
}
+ /**
+ * Test Reroute Email config.
+ */
+ #[DataProvider('dataProviderRerouteEmail')]
+ public function testRerouteEmail(string $env, array $vars, array $expected_present, array $expected_absent = []): void {
+ $this->setEnvVars($vars + ['DRUPAL_ENVIRONMENT' => $env]);
+
+ $this->requireSettingsFile();
+
+ $this->assertConfigContains($expected_present);
+ $this->assertConfigNotContains($expected_absent);
+ }
+
+ /**
+ * Data provider for testRerouteEmail().
+ */
+ public static function dataProviderRerouteEmail(): \Iterator {
+ // Local: disabled by default.
+ yield [
+ self::ENVIRONMENT_LOCAL,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+ ],
+ ];
+
+ // CI: disabled by default.
+ yield [
+ self::ENVIRONMENT_CI,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+ ],
+ ];
+
+ // Dev: enabled by default.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+ ],
+ ];
+
+ // SUT: enabled by default.
+ yield [
+ self::ENVIRONMENT_SUT,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+ ],
+ ];
+
+ // Stage: disabled by default.
+ yield [
+ self::ENVIRONMENT_STAGE,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+ ],
+ ];
+
+ // Prod: disabled by default.
+ yield [
+ self::ENVIRONMENT_PROD,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+ ],
+ ];
+
+ // Dev with DRUPAL_REROUTE_EMAIL_DISABLED: forced off.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => 1,
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE],
+ ],
+ ];
+
+ // SUT with DRUPAL_REROUTE_EMAIL_DISABLED: forced off.
+ yield [
+ self::ENVIRONMENT_SUT,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => 1,
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE],
+ ],
+ ];
+
+ // Custom address and allowed list.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_ADDRESS' => 'dev@example.com',
+ 'DRUPAL_REROUTE_EMAIL_ALLOWED' => '*@example.com',
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'dev@example.com', 'allowed' => '*@example.com'],
+ ],
+ ];
+
+ // DRUPAL_REROUTE_EMAIL_DISABLED with empty value: not disabled.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => '',
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE],
+ ],
+ ];
+
+ // DRUPAL_REROUTE_EMAIL_DISABLED with 0: not disabled.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => 0,
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE],
+ ],
+ ];
+
+ // DRUPAL_REROUTE_EMAIL_DISABLED with string '1': disabled.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => '1',
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE],
+ ],
+ ];
+ }
+
/**
* Test Stage File Proxy config.
*/
diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.reroute_email.php b/.vortex/installer/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.reroute_email.php
new file mode 100644
index 000000000..690b5de58
--- /dev/null
+++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.reroute_email.php
@@ -0,0 +1,26 @@
+assertEquals($databases, $this->databases);
// Verify key config overrides.
-@@ -280,9 +287,9 @@
+@@ -292,9 +299,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/migration_enabled_lagoon/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/migration_enabled_lagoon/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 0a55c1185..755bf4e36 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/migration_enabled_lagoon/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/migration_enabled_lagoon/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -185,7 +185,7 @@
}
/**
-@@ -141,6 +321,13 @@
+@@ -144,6 +324,13 @@
$databases['default']['default']['collation'] = 'utf8_general_ci';
$databases['default']['default']['driver'] = 'mysql';
$databases['default']['default']['prefix'] = '';
@@ -199,7 +199,7 @@
$this->assertEquals($databases, $this->databases);
// Verify key config overrides.
-@@ -325,6 +512,224 @@
+@@ -340,6 +527,236 @@
$settings['suspend_mail_send'] = TRUE;
$settings['trusted_host_patterns'] = [
'^localhost$',
@@ -229,6 +229,9 @@
+ $config['environment_indicator.settings']['favicon'] = TRUE;
+ $config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
+ $config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
++ $config['reroute_email.settings']['enable'] = TRUE;
++ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
++ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
+ $config['shield.settings']['shield_enable'] = TRUE;
+ $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
+ $config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -284,6 +287,9 @@
+ $config['environment_indicator.settings']['favicon'] = TRUE;
+ $config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
+ $config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
++ $config['reroute_email.settings']['enable'] = TRUE;
++ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
++ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
+ $config['shield.settings']['shield_enable'] = TRUE;
+ $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
+ $config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -339,6 +345,9 @@
+ $config['environment_indicator.settings']['favicon'] = TRUE;
+ $config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
+ $config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
++ $config['reroute_email.settings']['enable'] = FALSE;
++ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
++ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
+ $config['shield.settings']['shield_enable'] = TRUE;
+ $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
+ $config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -393,6 +402,9 @@
+ $config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_PROD;
+ $config['environment_indicator.settings']['favicon'] = TRUE;
+ $config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
++ $config['reroute_email.settings']['enable'] = FALSE;
++ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
++ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
+ $config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['system.performance']['css']['preprocess'] = TRUE;
+ $config['system.performance']['js']['preprocess'] = TRUE;
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_admin_toolbar/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_admin_toolbar/scripts/custom/provision-10-example.sh
index e795e6ed3..ae73a79b9 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_admin_toolbar/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_admin_toolbar/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_coffee/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_coffee/scripts/custom/provision-10-example.sh
index 29a8ee472..5edfc36ec 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_coffee/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_coffee/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_split/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_split/scripts/custom/provision-10-example.sh
index 6530e2ed5..b69459967 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_split/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_split/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar coffee config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar coffee config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_split/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_split/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 1954a204b..c10d54b65 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_split/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_split/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -190,7 +190,6 @@
+@@ -196,7 +196,6 @@
$this->requireSettingsFile();
$config['automated_cron.settings']['interval'] = 0;
@@ -6,7 +6,7 @@
$config['environment_indicator.indicator']['bg_color'] = '#006600';
$config['environment_indicator.indicator']['fg_color'] = '#ffffff';
$config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_LOCAL;
-@@ -239,7 +238,6 @@
+@@ -248,7 +247,6 @@
$this->requireSettingsFile();
$config['automated_cron.settings']['interval'] = 0;
@@ -14,7 +14,7 @@
$config['environment_indicator.indicator']['bg_color'] = '#006600';
$config['environment_indicator.indicator']['fg_color'] = '#ffffff';
$config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_LOCAL;
-@@ -290,7 +288,6 @@
+@@ -302,7 +300,6 @@
$this->requireSettingsFile();
$config['automated_cron.settings']['interval'] = 0;
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_update/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_update/scripts/custom/provision-10-example.sh
index 6f9e782e4..cb1da6d9f 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_update/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_config_update/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar coffee config_split media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar coffee config_split media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_environment_indicator/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_environment_indicator/scripts/custom/provision-10-example.sh
index cf2078dae..e364028ad 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_environment_indicator/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_environment_indicator/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar coffee config_split config_update media pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar coffee config_split config_update media pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_environment_indicator/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_no_environment_indicator/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 272c893a5..7174d8209 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_environment_indicator/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_environment_indicator/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -10,7 +10,7 @@
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
-@@ -144,11 +139,6 @@
+@@ -147,11 +142,6 @@
$this->assertEquals($databases, $this->databases);
// Verify key config overrides.
@@ -22,7 +22,7 @@
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
-@@ -191,11 +181,6 @@
+@@ -197,11 +187,6 @@
$config['automated_cron.settings']['interval'] = 0;
$config['config_split.config_split.local']['status'] = TRUE;
@@ -34,7 +34,7 @@
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
$config['shield.settings']['shield_enable'] = FALSE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
-@@ -240,11 +225,6 @@
+@@ -249,11 +234,6 @@
$config['automated_cron.settings']['interval'] = 0;
$config['config_split.config_split.local']['status'] = TRUE;
@@ -46,7 +46,7 @@
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
$config['shield.settings']['shield_enable'] = FALSE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
-@@ -291,11 +271,6 @@
+@@ -303,11 +283,6 @@
$config['automated_cron.settings']['interval'] = 0;
$config['config_split.config_split.ci']['status'] = TRUE;
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_pathauto/composer.json b/.vortex/installer/tests/Fixtures/handler_process/modules_no_pathauto/composer.json
index 53eb7938f..57d22cee0 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_pathauto/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_pathauto/composer.json
@@ -5,4 +5,4 @@
- "drupal/pathauto": "__VERSION__",
"drupal/redirect": "__VERSION__",
"drupal/redis": "__VERSION__",
- "drupal/robotstxt": "__VERSION__",
+ "drupal/reroute_email": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_pathauto/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_pathauto/scripts/custom/provision-10-example.sh
index 77d8dd257..9a4edad1b 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_pathauto/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_pathauto/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator redirect robotstxt shield stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_redirect/composer.json b/.vortex/installer/tests/Fixtures/handler_process/modules_no_redirect/composer.json
index ee37767d9..7ce6644ed 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_redirect/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_redirect/composer.json
@@ -4,5 +4,5 @@
"drupal/pathauto": "__VERSION__",
- "drupal/redirect": "__VERSION__",
"drupal/redis": "__VERSION__",
+ "drupal/reroute_email": "__VERSION__",
"drupal/robotstxt": "__VERSION__",
- "drupal/search_api": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_redirect/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_redirect/scripts/custom/provision-10-example.sh
index d062b83c9..3319f534d 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_redirect/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_redirect/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto robotstxt shield stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto reroute_email robotstxt shield stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/composer.json b/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/composer.json
index daad77232..05a28702c 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/composer.json
@@ -1,7 +1,7 @@
-@@ -20,7 +20,6 @@
- "drupal/pathauto": "__VERSION__",
+@@ -21,7 +21,6 @@
"drupal/redirect": "__VERSION__",
"drupal/redis": "__VERSION__",
+ "drupal/reroute_email": "__VERSION__",
- "drupal/robotstxt": "__VERSION__",
"drupal/search_api": "__VERSION__",
"drupal/search_api_solr": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/scripts/custom/provision-10-example.sh
index 1fca070af..b539b7f82 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect shield stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email shield stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 01f9d39c3..0e08f6d72 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_robotstxt/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -6,7 +6,7 @@
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
-@@ -149,7 +148,6 @@
+@@ -152,7 +151,6 @@
$config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_SUT;
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
@@ -14,7 +14,7 @@
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
-@@ -196,7 +194,6 @@
+@@ -202,7 +200,6 @@
$config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_LOCAL;
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
@@ -22,7 +22,7 @@
$config['shield.settings']['shield_enable'] = FALSE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
-@@ -245,7 +242,6 @@
+@@ -254,7 +251,6 @@
$config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_LOCAL;
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
@@ -30,7 +30,7 @@
$config['shield.settings']['shield_enable'] = FALSE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
-@@ -296,7 +292,6 @@
+@@ -308,7 +304,6 @@
$config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_CI;
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit/composer.json b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit/composer.json
index 48b17dbd3..a6d70657d 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit/composer.json
@@ -1,4 +1,4 @@
-@@ -23,7 +23,6 @@
+@@ -24,7 +24,6 @@
"drupal/robotstxt": "__VERSION__",
"drupal/search_api": "__VERSION__",
"drupal/search_api_solr": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 863664a21..9dceecafe 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,25 +1,25 @@
-@@ -202,8 +202,6 @@
- $config['xmlsitemap_engines.settings']['submit'] = FALSE;
- $config['system.logging']['error_level'] = 'all';
- $config['system.performance']['cache']['page']['max_age'] = 900;
+@@ -211,8 +211,6 @@
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
- $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
- $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
$settings['auto_create_htaccess'] = FALSE;
-@@ -251,8 +249,6 @@
- $config['xmlsitemap_engines.settings']['submit'] = FALSE;
- $config['system.logging']['error_level'] = 'all';
- $config['system.performance']['cache']['page']['max_age'] = 900;
+@@ -263,8 +261,6 @@
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
- $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
- $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
$settings['auto_create_htaccess'] = FALSE;
-@@ -302,8 +298,6 @@
- $config['xmlsitemap_engines.settings']['submit'] = FALSE;
- $config['system.logging']['error_level'] = 'all';
- $config['system.performance']['cache']['page']['max_age'] = 900;
+@@ -317,8 +313,6 @@
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
- $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
- $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/composer.json b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/composer.json
index ab312fad1..c8817c620 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/composer.json
@@ -1,4 +1,4 @@
-@@ -23,9 +23,6 @@
+@@ -24,9 +24,6 @@
"drupal/robotstxt": "__VERSION__",
"drupal/search_api": "__VERSION__",
"drupal/search_api_solr": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/scripts/custom/provision-10-example.sh
index ceb25795e..9d4f613fd 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 56475a0ef..6c10eeb27 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -5,16 +5,16 @@
- $config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
- $config['system.performance']['cache']['page']['max_age'] = 900;
-@@ -150,7 +149,6 @@
+ $config['reroute_email.settings']['enable'] = TRUE;
+@@ -153,7 +152,6 @@
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
- $config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
- $config['system.performance']['cache']['page']['max_age'] = 1800;
-@@ -197,13 +195,10 @@
+ $config['reroute_email.settings']['enable'] = TRUE;
+@@ -203,7 +201,6 @@
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
@@ -22,13 +22,16 @@
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
- $config['system.performance']['cache']['page']['max_age'] = 900;
+@@ -211,8 +208,6 @@
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
- $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
- $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
$settings['auto_create_htaccess'] = FALSE;
-@@ -246,13 +241,10 @@
+@@ -255,7 +250,6 @@
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
@@ -36,13 +39,16 @@
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
- $config['system.performance']['cache']['page']['max_age'] = 900;
+@@ -263,8 +257,6 @@
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
- $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
- $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
$settings['auto_create_htaccess'] = FALSE;
-@@ -297,13 +289,10 @@
+@@ -309,7 +301,6 @@
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
@@ -50,7 +56,10 @@
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
- $config['system.performance']['cache']['page']['max_age'] = 900;
+@@ -317,8 +308,6 @@
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
- $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
- $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php
index 8c99eb8db..acd9ddea1 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -297,500 +297,6 @@
+@@ -297,375 +297,6 @@
}
/**
@@ -370,6 +370,17 @@
- ];
- }
-
+- /**
+ * Test Reroute Email config.
+ */
+ #[DataProvider('dataProviderRerouteEmail')]
+@@ -801,131 +432,6 @@
+ [
+ 'reroute_email.settings' => ['enable' => FALSE],
+ ],
+- ];
+- }
+-
- /**
- * Test Stage File Proxy config.
- */
@@ -492,10 +503,6 @@
- 'stage_file_proxy.settings' => ['hotlink' => FALSE, 'origin' => 'https://drupal_shield_user:drupal_shield_pass@example.com/'],
- ],
- [],
-- ];
-- }
--
-- /**
- * Test trusted host patterns settings.
- */
- #[DataProvider('dataProviderTrustedHostPatterns')]
+ ];
+ }
+
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/composer.json b/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/composer.json
index 8a120a603..747d383e7 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/composer.json
@@ -1,4 +1,4 @@
-@@ -24,7 +24,6 @@
+@@ -25,7 +25,6 @@
"drupal/search_api": "__VERSION__",
"drupal/search_api_solr": "__VERSION__",
"drupal/seckit": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/scripts/custom/provision-10-example.sh
index f2a4d2b20..3b69b1e55 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt stage_file_proxy xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 5c31b4b2e..b630e2cea 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -5,16 +5,16 @@
- $config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
- $config['system.performance']['cache']['page']['max_age'] = 900;
-@@ -150,7 +149,6 @@
+ $config['reroute_email.settings']['enable'] = TRUE;
+@@ -153,7 +152,6 @@
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
- $config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
- $config['system.performance']['cache']['page']['max_age'] = 1800;
-@@ -197,7 +195,6 @@
+ $config['reroute_email.settings']['enable'] = TRUE;
+@@ -203,7 +201,6 @@
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
@@ -22,7 +22,7 @@
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
-@@ -246,7 +243,6 @@
+@@ -255,7 +252,6 @@
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
@@ -30,7 +30,7 @@
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
-@@ -297,7 +293,6 @@
+@@ -309,7 +305,6 @@
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/tests/phpunit/Drupal/SwitchableSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/tests/phpunit/Drupal/SwitchableSettingsTest.php
index 374fdad1c..ca273cc60 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/tests/phpunit/Drupal/SwitchableSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_shield/tests/phpunit/Drupal/SwitchableSettingsTest.php
@@ -371,6 +371,6 @@
- }
-
- /**
- * Test Stage File Proxy config.
+ * Test Reroute Email config.
*/
- #[DataProvider('dataProviderStageFileProxy')]
+ #[DataProvider('dataProviderRerouteEmail')]
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/composer.json b/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/composer.json
index de1ef7e24..0f7d0143a 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/composer.json
@@ -1,4 +1,4 @@
-@@ -25,7 +25,6 @@
+@@ -26,7 +26,6 @@
"drupal/search_api_solr": "__VERSION__",
"drupal/seckit": "__VERSION__",
"drupal/shield": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/scripts/custom/provision-10-example.sh
index 5761c9819..fc258f924 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/scripts/custom/provision-10-example.sh
@@ -2,8 +2,8 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
-+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
++ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield xmlsitemap
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php
index bc2373889..05aae39ae 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_no_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -666,131 +666,6 @@
+@@ -805,131 +805,6 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_none/composer.json b/.vortex/installer/tests/Fixtures/handler_process/modules_none/composer.json
index bebedc227..52bc5e58b 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_none/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_none/composer.json
@@ -1,4 +1,4 @@
-@@ -7,27 +7,15 @@
+@@ -7,28 +7,15 @@
"php": "__VERSION__",
"composer/installers": "__VERSION__",
"cweagans/composer-patches": "__VERSION__",
@@ -15,6 +15,7 @@
- "drupal/pathauto": "__VERSION__",
- "drupal/redirect": "__VERSION__",
"drupal/redis": "__VERSION__",
+- "drupal/reroute_email": "__VERSION__",
- "drupal/robotstxt": "__VERSION__",
"drupal/search_api": "__VERSION__",
"drupal/search_api_solr": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_none/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/modules_none/scripts/custom/provision-10-example.sh
index 4889ef144..accac3172 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_none/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_none/scripts/custom/provision-10-example.sh
@@ -3,7 +3,7 @@
drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'star wars')->save();"
- task "Installing contrib modules."
-- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
-
task "Installing Redis module."
drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 228287672..504761a01 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -70,14 +70,6 @@
+@@ -70,18 +70,7 @@
$this->requireSettingsFile();
@@ -11,9 +11,13 @@
- $config['shield.settings']['shield_enable'] = TRUE;
- $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
+- $config['reroute_email.settings']['enable'] = TRUE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
$config['system.performance']['cache']['page']['max_age'] = 900;
$this->assertConfig($config);
-@@ -144,14 +136,6 @@
+
+@@ -147,18 +136,7 @@
$this->assertEquals($databases, $this->databases);
// Verify key config overrides.
@@ -26,9 +30,13 @@
- $config['shield.settings']['shield_enable'] = TRUE;
- $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
+- $config['reroute_email.settings']['enable'] = TRUE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
$config['system.performance']['cache']['page']['max_age'] = 1800;
$this->assertConfig($config);
-@@ -190,20 +174,9 @@
+
+@@ -196,23 +174,9 @@
$this->requireSettingsFile();
$config['automated_cron.settings']['interval'] = 0;
@@ -44,12 +52,15 @@
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+- $config['reroute_email.settings']['enable'] = FALSE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
- $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
- $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
$settings['auto_create_htaccess'] = FALSE;
-@@ -239,20 +212,9 @@
+@@ -248,23 +212,9 @@
$this->requireSettingsFile();
$config['automated_cron.settings']['interval'] = 0;
@@ -65,12 +76,15 @@
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+- $config['reroute_email.settings']['enable'] = FALSE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
- $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
- $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
$settings['auto_create_htaccess'] = FALSE;
-@@ -290,20 +252,9 @@
+@@ -302,23 +252,9 @@
$this->requireSettingsFile();
$config['automated_cron.settings']['interval'] = 0;
@@ -86,6 +100,9 @@
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+- $config['reroute_email.settings']['enable'] = FALSE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
- $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
- $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/SwitchableSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/SwitchableSettingsTest.php
index cffb6b01d..fcf3a2fcb 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/SwitchableSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/SwitchableSettingsTest.php
@@ -153,7 +153,7 @@
* Test Redis settings.
*/
public function testRedis(): void {
-@@ -294,500 +146,6 @@
+@@ -294,639 +146,6 @@
unset($this->settings['bootstrap_container_definition']);
$this->assertSettingsContains($settings);
@@ -529,6 +529,145 @@ public function testRedis(): void {
- }
-
- /**
+- * Test Reroute Email config.
+- */
+- #[DataProvider('dataProviderRerouteEmail')]
+- public function testRerouteEmail(string $env, array $vars, array $expected_present, array $expected_absent = []): void {
+- $this->setEnvVars($vars + ['DRUPAL_ENVIRONMENT' => $env]);
+-
+- $this->requireSettingsFile();
+-
+- $this->assertConfigContains($expected_present);
+- $this->assertConfigNotContains($expected_absent);
+- }
+-
+- /**
+- * Data provider for testRerouteEmail().
+- */
+- public static function dataProviderRerouteEmail(): \Iterator {
+- // Local: disabled by default.
+- yield [
+- self::ENVIRONMENT_LOCAL,
+- [],
+- [
+- 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+- ],
+- ];
+-
+- // CI: disabled by default.
+- yield [
+- self::ENVIRONMENT_CI,
+- [],
+- [
+- 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+- ],
+- ];
+-
+- // Dev: enabled by default.
+- yield [
+- self::ENVIRONMENT_DEV,
+- [],
+- [
+- 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+- ],
+- ];
+-
+- // SUT: enabled by default.
+- yield [
+- self::ENVIRONMENT_SUT,
+- [],
+- [
+- 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+- ],
+- ];
+-
+- // Stage: disabled by default.
+- yield [
+- self::ENVIRONMENT_STAGE,
+- [],
+- [
+- 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+- ],
+- ];
+-
+- // Prod: disabled by default.
+- yield [
+- self::ENVIRONMENT_PROD,
+- [],
+- [
+- 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
+- ],
+- ];
+-
+- // Dev with DRUPAL_REROUTE_EMAIL_DISABLED: forced off.
+- yield [
+- self::ENVIRONMENT_DEV,
+- [
+- 'DRUPAL_REROUTE_EMAIL_DISABLED' => 1,
+- ],
+- [
+- 'reroute_email.settings' => ['enable' => FALSE],
+- ],
+- ];
+-
+- // SUT with DRUPAL_REROUTE_EMAIL_DISABLED: forced off.
+- yield [
+- self::ENVIRONMENT_SUT,
+- [
+- 'DRUPAL_REROUTE_EMAIL_DISABLED' => 1,
+- ],
+- [
+- 'reroute_email.settings' => ['enable' => FALSE],
+- ],
+- ];
+-
+- // Custom address and allowed list.
+- yield [
+- self::ENVIRONMENT_DEV,
+- [
+- 'DRUPAL_REROUTE_EMAIL_ADDRESS' => 'dev@example.com',
+- 'DRUPAL_REROUTE_EMAIL_ALLOWED' => '*@example.com',
+- ],
+- [
+- 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'dev@example.com', 'allowed' => '*@example.com'],
+- ],
+- ];
+-
+- // DRUPAL_REROUTE_EMAIL_DISABLED with empty value: not disabled.
+- yield [
+- self::ENVIRONMENT_DEV,
+- [
+- 'DRUPAL_REROUTE_EMAIL_DISABLED' => '',
+- ],
+- [
+- 'reroute_email.settings' => ['enable' => TRUE],
+- ],
+- ];
+-
+- // DRUPAL_REROUTE_EMAIL_DISABLED with 0: not disabled.
+- yield [
+- self::ENVIRONMENT_DEV,
+- [
+- 'DRUPAL_REROUTE_EMAIL_DISABLED' => 0,
+- ],
+- [
+- 'reroute_email.settings' => ['enable' => TRUE],
+- ],
+- ];
+-
+- // DRUPAL_REROUTE_EMAIL_DISABLED with string '1': disabled.
+- yield [
+- self::ENVIRONMENT_DEV,
+- [
+- 'DRUPAL_REROUTE_EMAIL_DISABLED' => '1',
+- ],
+- [
+- 'reroute_email.settings' => ['enable' => FALSE],
+- ],
+- ];
+- }
+-
+- /**
- * Test Stage File Proxy config.
- */
- #[DataProvider('dataProviderStageFileProxy')]
diff --git a/.vortex/installer/tests/Fixtures/handler_process/modules_none/web/sites/default/includes/modules/-settings.reroute_email.php b/.vortex/installer/tests/Fixtures/handler_process/modules_none/web/sites/default/includes/modules/-settings.reroute_email.php
new file mode 100644
index 000000000..e69de29bb
diff --git a/.vortex/installer/tests/Fixtures/handler_process/names/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/names/scripts/custom/provision-10-example.sh
index a7d0e4e62..496281d48 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/names/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/names/scripts/custom/provision-10-example.sh
@@ -6,7 +6,7 @@
+ drush php:eval "\Drupal::service('config.factory')->getEditable('system.site')->set('name', 'New hope')->save();"
task "Installing contrib modules."
- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
@@ -55,11 +55,11 @@
# Note that deployment hooks for already enabled modules have run in the
# parent "provision.sh" script.
diff --git a/.vortex/installer/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/EnvironmentSettingsTest.php
new file mode 100644
index 000000000..76bbaf473
--- /dev/null
+++ b/.vortex/installer/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -0,0 +1,55 @@
+@@ -80,8 +80,8 @@
+ $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
+ $config['xmlsitemap_engines.settings']['submit'] = FALSE;
+ $config['reroute_email.settings']['enable'] = TRUE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
++ $config['reroute_email.settings']['address'] = 'webmaster@death-star.com';
++ $config['reroute_email.settings']['allowed'] = '*@death-star.com';
+ $config['system.performance']['cache']['page']['max_age'] = 900;
+ $this->assertConfig($config);
+
+@@ -157,8 +157,8 @@
+ $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
+ $config['xmlsitemap_engines.settings']['submit'] = FALSE;
+ $config['reroute_email.settings']['enable'] = TRUE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
++ $config['reroute_email.settings']['address'] = 'webmaster@death-star.com';
++ $config['reroute_email.settings']['allowed'] = '*@death-star.com';
+ $config['system.performance']['cache']['page']['max_age'] = 1800;
+ $this->assertConfig($config);
+
+@@ -209,8 +209,8 @@
+ $config['system.logging']['error_level'] = 'all';
+ $config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
++ $config['reroute_email.settings']['address'] = 'webmaster@death-star.com';
++ $config['reroute_email.settings']['allowed'] = '*@death-star.com';
+ $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
+ $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
+ $this->assertConfig($config);
+@@ -261,8 +261,8 @@
+ $config['system.logging']['error_level'] = 'all';
+ $config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
++ $config['reroute_email.settings']['address'] = 'webmaster@death-star.com';
++ $config['reroute_email.settings']['allowed'] = '*@death-star.com';
+ $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
+ $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
+ $this->assertConfig($config);
+@@ -315,8 +315,8 @@
+ $config['system.logging']['error_level'] = 'all';
+ $config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+- $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
+- $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
++ $config['reroute_email.settings']['address'] = 'webmaster@death-star.com';
++ $config['reroute_email.settings']['allowed'] = '*@death-star.com';
+ $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
+ $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
+ $this->assertConfig($config);
diff --git a/.vortex/installer/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/SwitchableSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/SwitchableSettingsTest.php
new file mode 100644
index 000000000..445f21812
--- /dev/null
+++ b/.vortex/installer/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/SwitchableSettingsTest.php
@@ -0,0 +1,54 @@
+@@ -687,7 +687,7 @@
+ self::ENVIRONMENT_LOCAL,
+ [],
+ [
+- 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
++ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@death-star.com', 'allowed' => '*@death-star.com'],
+ ],
+ ];
+
+@@ -696,7 +696,7 @@
+ self::ENVIRONMENT_CI,
+ [],
+ [
+- 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
++ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@death-star.com', 'allowed' => '*@death-star.com'],
+ ],
+ ];
+
+@@ -705,7 +705,7 @@
+ self::ENVIRONMENT_DEV,
+ [],
+ [
+- 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
++ 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@death-star.com', 'allowed' => '*@death-star.com'],
+ ],
+ ];
+
+@@ -714,7 +714,7 @@
+ self::ENVIRONMENT_SUT,
+ [],
+ [
+- 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
++ 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@death-star.com', 'allowed' => '*@death-star.com'],
+ ],
+ ];
+
+@@ -723,7 +723,7 @@
+ self::ENVIRONMENT_STAGE,
+ [],
+ [
+- 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
++ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@death-star.com', 'allowed' => '*@death-star.com'],
+ ],
+ ];
+
+@@ -732,7 +732,7 @@
+ self::ENVIRONMENT_PROD,
+ [],
+ [
+- 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@star-wars.com', 'allowed' => '*@star-wars.com'],
++ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@death-star.com', 'allowed' => '*@death-star.com'],
+ ],
+ ];
+
diff --git a/.vortex/installer/tests/Fixtures/handler_process/names/web/sites/default/includes/modules/settings.reroute_email.php b/.vortex/installer/tests/Fixtures/handler_process/names/web/sites/default/includes/modules/settings.reroute_email.php
new file mode 100644
index 000000000..4e92135f1
--- /dev/null
+++ b/.vortex/installer/tests/Fixtures/handler_process/names/web/sites/default/includes/modules/settings.reroute_email.php
@@ -0,0 +1,11 @@
+@@ -8,8 +8,8 @@
+ declare(strict_types=1);
+
+ // Default reroute email address and allowed list.
+-$config['reroute_email.settings']['address'] = getenv('DRUPAL_REROUTE_EMAIL_ADDRESS') ?: 'webmaster@star-wars.com';
+-$config['reroute_email.settings']['allowed'] = getenv('DRUPAL_REROUTE_EMAIL_ALLOWED') ?: '*@star-wars.com';
++$config['reroute_email.settings']['address'] = getenv('DRUPAL_REROUTE_EMAIL_ADDRESS') ?: 'webmaster@death-star.com';
++$config['reroute_email.settings']['allowed'] = getenv('DRUPAL_REROUTE_EMAIL_ALLOWED') ?: '*@death-star.com';
+
+ // Enable rerouting in all environments except local, ci, stage and prod.
+ // This covers dev and any custom environments (e.g., PR environments).
diff --git a/.vortex/installer/tests/Fixtures/handler_process/non_interactive_config_file/composer.json b/.vortex/installer/tests/Fixtures/handler_process/non_interactive_config_file/composer.json
index e95b5cf17..ee122d1d5 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/non_interactive_config_file/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/non_interactive_config_file/composer.json
@@ -12,6 +12,6 @@
"drupal/pathauto": "__VERSION__",
"drupal/redirect": "__VERSION__",
- "drupal/redis": "__VERSION__",
+ "drupal/reroute_email": "__VERSION__",
"drupal/robotstxt": "__VERSION__",
"drupal/search_api": "__VERSION__",
- "drupal/search_api_solr": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/non_interactive_config_file/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/non_interactive_config_file/scripts/custom/provision-10-example.sh
index ae9663e46..c68100be9 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/non_interactive_config_file/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/non_interactive_config_file/scripts/custom/provision-10-example.sh
@@ -1,6 +1,6 @@
@@ -40,9 +40,6 @@
task "Installing contrib modules."
- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
- task "Installing Redis module."
- drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/provision_database_lagoon/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/provision_database_lagoon/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 0c6aab903..c93afa303 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/provision_database_lagoon/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/provision_database_lagoon/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -185,7 +185,7 @@
}
/**
-@@ -325,6 +505,224 @@
+@@ -340,6 +520,236 @@
$settings['suspend_mail_send'] = TRUE;
$settings['trusted_host_patterns'] = [
'^localhost$',
@@ -215,6 +215,9 @@
+ $config['environment_indicator.settings']['favicon'] = TRUE;
+ $config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
+ $config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
++ $config['reroute_email.settings']['enable'] = TRUE;
++ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
++ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
+ $config['shield.settings']['shield_enable'] = TRUE;
+ $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
+ $config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -270,6 +273,9 @@
+ $config['environment_indicator.settings']['favicon'] = TRUE;
+ $config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
+ $config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
++ $config['reroute_email.settings']['enable'] = TRUE;
++ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
++ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
+ $config['shield.settings']['shield_enable'] = TRUE;
+ $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
+ $config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -325,6 +331,9 @@
+ $config['environment_indicator.settings']['favicon'] = TRUE;
+ $config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
+ $config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
++ $config['reroute_email.settings']['enable'] = FALSE;
++ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
++ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
+ $config['shield.settings']['shield_enable'] = TRUE;
+ $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
+ $config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -379,6 +388,9 @@
+ $config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_PROD;
+ $config['environment_indicator.settings']['favicon'] = TRUE;
+ $config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
++ $config['reroute_email.settings']['enable'] = FALSE;
++ $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com';
++ $config['reroute_email.settings']['allowed'] = '*@star-wars.com';
+ $config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['system.performance']['css']['preprocess'] = TRUE;
+ $config['system.performance']['js']['preprocess'] = TRUE;
diff --git a/.vortex/installer/tests/Fixtures/handler_process/services_no_redis/composer.json b/.vortex/installer/tests/Fixtures/handler_process/services_no_redis/composer.json
index 666ca0de1..f5d99b71b 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/services_no_redis/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/services_no_redis/composer.json
@@ -3,6 +3,6 @@
"drupal/pathauto": "__VERSION__",
"drupal/redirect": "__VERSION__",
- "drupal/redis": "__VERSION__",
+ "drupal/reroute_email": "__VERSION__",
"drupal/robotstxt": "__VERSION__",
"drupal/search_api": "__VERSION__",
- "drupal/search_api_solr": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/services_no_redis/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/services_no_redis/scripts/custom/provision-10-example.sh
index ae9663e46..c68100be9 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/services_no_redis/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/services_no_redis/scripts/custom/provision-10-example.sh
@@ -1,6 +1,6 @@
@@ -40,9 +40,6 @@
task "Installing contrib modules."
- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
- task "Installing Redis module."
- drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/services_no_solr/composer.json b/.vortex/installer/tests/Fixtures/handler_process/services_no_solr/composer.json
index 59fe02bcf..24f92b515 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/services_no_solr/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/services_no_solr/composer.json
@@ -1,5 +1,5 @@
-@@ -22,7 +22,6 @@
- "drupal/redis": "__VERSION__",
+@@ -23,7 +23,6 @@
+ "drupal/reroute_email": "__VERSION__",
"drupal/robotstxt": "__VERSION__",
"drupal/search_api": "__VERSION__",
- "drupal/search_api_solr": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/services_none/composer.json b/.vortex/installer/tests/Fixtures/handler_process/services_none/composer.json
index 490bc1c33..719b7f426 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/services_none/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/services_none/composer.json
@@ -6,11 +6,12 @@
"drupal/coffee": "__VERSION__",
"drupal/config_split": "__VERSION__",
"drupal/config_update": "__VERSION__",
-@@ -19,10 +18,8 @@
+@@ -19,11 +18,9 @@
"drupal/generated_content": "__VERSION__",
"drupal/pathauto": "__VERSION__",
"drupal/redirect": "__VERSION__",
- "drupal/redis": "__VERSION__",
+ "drupal/reroute_email": "__VERSION__",
"drupal/robotstxt": "__VERSION__",
"drupal/search_api": "__VERSION__",
- "drupal/search_api_solr": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/services_none/scripts/custom/provision-10-example.sh b/.vortex/installer/tests/Fixtures/handler_process/services_none/scripts/custom/provision-10-example.sh
index 3edbc97aa..9c9daadd5 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/services_none/scripts/custom/provision-10-example.sh
+++ b/.vortex/installer/tests/Fixtures/handler_process/services_none/scripts/custom/provision-10-example.sh
@@ -1,6 +1,6 @@
@@ -40,16 +40,6 @@
task "Installing contrib modules."
- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
- task "Installing Redis module."
- drush pm:install redis || true
diff --git a/.vortex/installer/tests/Fixtures/handler_process/starter_drupal_cms_profile/composer.json b/.vortex/installer/tests/Fixtures/handler_process/starter_drupal_cms_profile/composer.json
index 9bb0cfc89..2bfc4dd9b 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/starter_drupal_cms_profile/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/starter_drupal_cms_profile/composer.json
@@ -6,7 +6,7 @@
"drupal/coffee": "__VERSION__",
"drupal/config_split": "__VERSION__",
"drupal/config_update": "__VERSION__",
-@@ -30,7 +31,9 @@
+@@ -31,7 +32,9 @@
"drupal/xmlsitemap": "__VERSION__",
"drush/drush": "__VERSION__",
"oomphinc/composer-installers-extender": "__VERSION__",
@@ -17,7 +17,7 @@
},
"require-dev": {
"behat/behat": "__VERSION__",
-@@ -67,7 +70,7 @@
+@@ -68,7 +71,7 @@
"url": "https://packages.drupal.org/8"
}
],
@@ -26,7 +26,7 @@
"prefer-stable": true,
"autoload": {
"classmap": [
-@@ -90,7 +93,11 @@
+@@ -91,7 +94,11 @@
"php-http/discovery": true,
"phpstan/extension-installer": true,
"pyrech/composer-changelogs": true,
@@ -39,7 +39,7 @@
},
"audit": {
"abandoned": "report",
-@@ -167,7 +174,20 @@
+@@ -168,7 +175,20 @@
"patchLevel": {
"drupal/core": "-p2"
},
diff --git a/.vortex/installer/tests/Fixtures/handler_process/timezone_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/timezone_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/timezone_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/timezone_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint/composer.json
index 424311633..db76ccab0 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint/composer.json
@@ -1,4 +1,4 @@
-@@ -35,27 +35,17 @@
+@@ -36,27 +36,17 @@
"require-dev": {
"behat/behat": "__VERSION__",
"dantleech/gherkin-lint": "__VERSION__",
@@ -26,7 +26,7 @@
"vincentlanglet/twig-cs-fixer": "__VERSION__"
},
"conflict": {
-@@ -83,12 +73,10 @@
+@@ -84,12 +74,10 @@
"allow-plugins": {
"composer/installers": true,
"cweagans/composer-patches": true,
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/composer.json
index 424311633..db76ccab0 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/composer.json
@@ -1,4 +1,4 @@
-@@ -35,27 +35,17 @@
+@@ -36,27 +36,17 @@
"require-dev": {
"behat/behat": "__VERSION__",
"dantleech/gherkin-lint": "__VERSION__",
@@ -26,7 +26,7 @@
"vincentlanglet/twig-cs-fixer": "__VERSION__"
},
"conflict": {
-@@ -83,12 +73,10 @@
+@@ -84,12 +74,10 @@
"allow-plugins": {
"composer/installers": true,
"cweagans/composer-patches": true,
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 1e3b86ec5..a6cbc7ce5 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -9,7 +9,7 @@
*/
#[Group('drupal_settings')]
class EnvironmentSettingsTest extends SettingsTestCase {
-@@ -280,9 +276,9 @@
+@@ -292,9 +288,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_tests/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_tests/composer.json
index aa5672fb7..c35f1bff9 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_tests/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_tests/composer.json
@@ -1,4 +1,4 @@
-@@ -33,15 +33,9 @@
+@@ -34,15 +34,9 @@
"webflo/drupal-finder": "__VERSION__"
},
"require-dev": {
@@ -14,7 +14,7 @@
"ergebnis/composer-normalize": "__VERSION__",
"lullabot/mink-selenium2-driver": "__VERSION__",
"lullabot/php-webdriver": "__VERSION__",
-@@ -50,10 +44,8 @@
+@@ -51,10 +45,8 @@
"palantirnet/drupal-rector": "__VERSION__",
"phpcompatibility/php-compatibility": "__VERSION__",
"phpmd/phpmd": "__VERSION__",
@@ -25,7 +25,7 @@
"pyrech/composer-changelogs": "__VERSION__",
"rector/rector": "__VERSION__",
"vincentlanglet/twig-cs-fixer": "__VERSION__"
-@@ -72,11 +64,6 @@
+@@ -73,11 +65,6 @@
"autoload": {
"classmap": [
"scripts/composer/ScriptHandler.php"
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/composer.json
index aa5672fb7..c35f1bff9 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/composer.json
@@ -1,4 +1,4 @@
-@@ -33,15 +33,9 @@
+@@ -34,15 +34,9 @@
"webflo/drupal-finder": "__VERSION__"
},
"require-dev": {
@@ -14,7 +14,7 @@
"ergebnis/composer-normalize": "__VERSION__",
"lullabot/mink-selenium2-driver": "__VERSION__",
"lullabot/php-webdriver": "__VERSION__",
-@@ -50,10 +44,8 @@
+@@ -51,10 +45,8 @@
"palantirnet/drupal-rector": "__VERSION__",
"phpcompatibility/php-compatibility": "__VERSION__",
"phpmd/phpmd": "__VERSION__",
@@ -25,7 +25,7 @@
"pyrech/composer-changelogs": "__VERSION__",
"rector/rector": "__VERSION__",
"vincentlanglet/twig-cs-fixer": "__VERSION__"
-@@ -72,11 +64,6 @@
+@@ -73,11 +65,6 @@
"autoload": {
"classmap": [
"scripts/composer/ScriptHandler.php"
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat/composer.json
index c3af25859..eea5c387d 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat/composer.json
@@ -1,4 +1,4 @@
-@@ -33,15 +33,9 @@
+@@ -34,15 +34,9 @@
"webflo/drupal-finder": "__VERSION__"
},
"require-dev": {
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat_circleci/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat_circleci/composer.json
index c3af25859..eea5c387d 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat_circleci/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat_circleci/composer.json
@@ -1,4 +1,4 @@
-@@ -33,15 +33,9 @@
+@@ -34,15 +34,9 @@
"webflo/drupal-finder": "__VERSION__"
},
"require-dev": {
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_eslint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_eslint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_eslint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_eslint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_jest_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_jest_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_jest_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_jest_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs/composer.json
index 04e447f5a..38c821298 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs/composer.json
@@ -1,4 +1,4 @@
-@@ -35,12 +35,9 @@
+@@ -36,12 +36,9 @@
"require-dev": {
"behat/behat": "__VERSION__",
"dantleech/gherkin-lint": "__VERSION__",
@@ -11,7 +11,7 @@
"drupal/drupal-extension": "__VERSION__",
"ergebnis/composer-normalize": "__VERSION__",
"lullabot/mink-selenium2-driver": "__VERSION__",
-@@ -48,7 +45,6 @@
+@@ -49,7 +46,6 @@
"mglaman/phpstan-drupal": "__VERSION__",
"mikey179/vfsstream": "__VERSION__",
"palantirnet/drupal-rector": "__VERSION__",
@@ -19,7 +19,7 @@
"phpmd/phpmd": "__VERSION__",
"phpspec/prophecy-phpunit": "__VERSION__",
"phpstan/extension-installer": "__VERSION__",
-@@ -83,7 +79,6 @@
+@@ -84,7 +80,6 @@
"allow-plugins": {
"composer/installers": true,
"cweagans/composer-patches": true,
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs_circleci/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs_circleci/composer.json
index 04e447f5a..38c821298 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs_circleci/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs_circleci/composer.json
@@ -1,4 +1,4 @@
-@@ -35,12 +35,9 @@
+@@ -36,12 +36,9 @@
"require-dev": {
"behat/behat": "__VERSION__",
"dantleech/gherkin-lint": "__VERSION__",
@@ -11,7 +11,7 @@
"drupal/drupal-extension": "__VERSION__",
"ergebnis/composer-normalize": "__VERSION__",
"lullabot/mink-selenium2-driver": "__VERSION__",
-@@ -48,7 +45,6 @@
+@@ -49,7 +46,6 @@
"mglaman/phpstan-drupal": "__VERSION__",
"mikey179/vfsstream": "__VERSION__",
"palantirnet/drupal-rector": "__VERSION__",
@@ -19,7 +19,7 @@
"phpmd/phpmd": "__VERSION__",
"phpspec/prophecy-phpunit": "__VERSION__",
"phpstan/extension-installer": "__VERSION__",
-@@ -83,7 +79,6 @@
+@@ -84,7 +80,6 @@
"allow-plugins": {
"composer/installers": true,
"cweagans/composer-patches": true,
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 1e3b86ec5..a6cbc7ce5 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpcs_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -9,7 +9,7 @@
*/
#[Group('drupal_settings')]
class EnvironmentSettingsTest extends SettingsTestCase {
-@@ -280,9 +276,9 @@
+@@ -292,9 +288,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd/composer.json
index cc7103d8d..ba0aa9757 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd/composer.json
@@ -1,4 +1,4 @@
-@@ -49,7 +49,6 @@
+@@ -50,7 +50,6 @@
"mikey179/vfsstream": "__VERSION__",
"palantirnet/drupal-rector": "__VERSION__",
"phpcompatibility/php-compatibility": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/composer.json
index cc7103d8d..ba0aa9757 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/composer.json
@@ -1,4 +1,4 @@
-@@ -49,7 +49,6 @@
+@@ -50,7 +50,6 @@
"mikey179/vfsstream": "__VERSION__",
"palantirnet/drupal-rector": "__VERSION__",
"phpcompatibility/php-compatibility": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan/composer.json
index 33fbc2eb8..564fdbf73 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan/composer.json
@@ -1,4 +1,4 @@
-@@ -45,14 +45,11 @@
+@@ -46,14 +46,11 @@
"ergebnis/composer-normalize": "__VERSION__",
"lullabot/mink-selenium2-driver": "__VERSION__",
"lullabot/php-webdriver": "__VERSION__",
@@ -13,7 +13,7 @@
"phpunit/phpunit": "__VERSION__",
"pyrech/composer-changelogs": "__VERSION__",
"rector/rector": "__VERSION__",
-@@ -88,7 +85,6 @@
+@@ -89,7 +86,6 @@
"ergebnis/composer-normalize": true,
"oomphinc/composer-installers-extender": true,
"php-http/discovery": true,
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan_circleci/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan_circleci/composer.json
index 33fbc2eb8..564fdbf73 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan_circleci/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan_circleci/composer.json
@@ -1,4 +1,4 @@
-@@ -45,14 +45,11 @@
+@@ -46,14 +46,11 @@
"ergebnis/composer-normalize": "__VERSION__",
"lullabot/mink-selenium2-driver": "__VERSION__",
"lullabot/php-webdriver": "__VERSION__",
@@ -13,7 +13,7 @@
"phpunit/phpunit": "__VERSION__",
"pyrech/composer-changelogs": "__VERSION__",
"rector/rector": "__VERSION__",
-@@ -88,7 +85,6 @@
+@@ -89,7 +86,6 @@
"ergebnis/composer-normalize": true,
"oomphinc/composer-installers-extender": true,
"php-http/discovery": true,
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpstan_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpunit/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpunit/composer.json
index 39b8a8401..563c0e495 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpunit/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpunit/composer.json
@@ -1,4 +1,4 @@
-@@ -50,10 +50,8 @@
+@@ -51,10 +51,8 @@
"palantirnet/drupal-rector": "__VERSION__",
"phpcompatibility/php-compatibility": "__VERSION__",
"phpmd/phpmd": "__VERSION__",
@@ -9,7 +9,7 @@
"pyrech/composer-changelogs": "__VERSION__",
"rector/rector": "__VERSION__",
"vincentlanglet/twig-cs-fixer": "__VERSION__"
-@@ -72,11 +70,6 @@
+@@ -73,11 +71,6 @@
"autoload": {
"classmap": [
"scripts/composer/ScriptHandler.php"
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpunit_circleci/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpunit_circleci/composer.json
index 39b8a8401..563c0e495 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpunit_circleci/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpunit_circleci/composer.json
@@ -1,4 +1,4 @@
-@@ -50,10 +50,8 @@
+@@ -51,10 +51,8 @@
"palantirnet/drupal-rector": "__VERSION__",
"phpcompatibility/php-compatibility": "__VERSION__",
"phpmd/phpmd": "__VERSION__",
@@ -9,7 +9,7 @@
"pyrech/composer-changelogs": "__VERSION__",
"rector/rector": "__VERSION__",
"vincentlanglet/twig-cs-fixer": "__VERSION__"
-@@ -72,11 +70,6 @@
+@@ -73,11 +71,6 @@
"autoload": {
"classmap": [
"scripts/composer/ScriptHandler.php"
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector/composer.json
index 9f642ed76..9ecb483a1 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector/composer.json
@@ -1,4 +1,4 @@
-@@ -47,7 +47,6 @@
+@@ -48,7 +48,6 @@
"lullabot/php-webdriver": "__VERSION__",
"mglaman/phpstan-drupal": "__VERSION__",
"mikey179/vfsstream": "__VERSION__",
@@ -6,7 +6,7 @@
"phpcompatibility/php-compatibility": "__VERSION__",
"phpmd/phpmd": "__VERSION__",
"phpspec/prophecy-phpunit": "__VERSION__",
-@@ -55,7 +54,6 @@
+@@ -56,7 +55,6 @@
"phpstan/phpstan": "__VERSION__",
"phpunit/phpunit": "__VERSION__",
"pyrech/composer-changelogs": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector_circleci/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector_circleci/composer.json
index 9f642ed76..9ecb483a1 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector_circleci/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector_circleci/composer.json
@@ -1,4 +1,4 @@
-@@ -47,7 +47,6 @@
+@@ -48,7 +48,6 @@
"lullabot/php-webdriver": "__VERSION__",
"mglaman/phpstan-drupal": "__VERSION__",
"mikey179/vfsstream": "__VERSION__",
@@ -6,7 +6,7 @@
"phpcompatibility/php-compatibility": "__VERSION__",
"phpmd/phpmd": "__VERSION__",
"phpspec/prophecy-phpunit": "__VERSION__",
-@@ -55,7 +54,6 @@
+@@ -56,7 +55,6 @@
"phpstan/phpstan": "__VERSION__",
"phpunit/phpunit": "__VERSION__",
"pyrech/composer-changelogs": "__VERSION__",
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_rector_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_stylelint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_stylelint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index aa1deaed6..9da8fd249 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_stylelint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_stylelint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -1,4 +1,4 @@
-@@ -280,9 +280,9 @@
+@@ -292,9 +292,9 @@
}
/**
diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_none/composer.json b/.vortex/installer/tests/Fixtures/handler_process/tools_none/composer.json
index 17004b946..cf36ef0a7 100644
--- a/.vortex/installer/tests/Fixtures/handler_process/tools_none/composer.json
+++ b/.vortex/installer/tests/Fixtures/handler_process/tools_none/composer.json
@@ -1,4 +1,4 @@
-@@ -33,29 +33,11 @@
+@@ -34,29 +34,11 @@
"webflo/drupal-finder": "__VERSION__"
},
"require-dev": {
@@ -28,7 +28,7 @@
"vincentlanglet/twig-cs-fixer": "__VERSION__"
},
"conflict": {
-@@ -74,21 +56,14 @@
+@@ -75,21 +57,14 @@
"scripts/composer/ScriptHandler.php"
]
},
diff --git a/.vortex/installer/tests/Unit/Handlers/ModulesHandlerDiscoveryTest.php b/.vortex/installer/tests/Unit/Handlers/ModulesHandlerDiscoveryTest.php
index 6d1638a9d..331b4512c 100644
--- a/.vortex/installer/tests/Unit/Handlers/ModulesHandlerDiscoveryTest.php
+++ b/.vortex/installer/tests/Unit/Handlers/ModulesHandlerDiscoveryTest.php
@@ -45,6 +45,7 @@ function (AbstractHandlerDiscoveryTestCase $test, Config $config): void {
'drupal/environment_indicator' => '^4.0.25',
'drupal/pathauto' => '^1.14',
'drupal/redirect' => '^1.12',
+ 'drupal/reroute_email' => '^2.3@RC',
'drupal/robotstxt' => '^1.6',
'drupal/seckit' => '^2.0.3',
'drupal/shield' => '^1.8',
diff --git a/.vortex/tests/bats/unit/provision.bats b/.vortex/tests/bats/unit/provision.bats
index c26ad75d5..6656a3803 100644
--- a/.vortex/tests/bats/unit/provision.bats
+++ b/.vortex/tests/bats/unit/provision.bats
@@ -147,7 +147,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -283,7 +283,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -428,7 +428,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -585,7 +585,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -730,7 +730,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -869,7 +869,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -1015,7 +1015,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -1329,7 +1329,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -1472,7 +1472,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -1733,7 +1733,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -1894,7 +1894,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
@@ -2106,7 +2106,7 @@ assert_provision_info() {
" > Setting site name."
"@drush -y php:eval \Drupal::service('config.factory')->getEditable('system.site')->set('name', 'YOURSITE')->save();"
" > Installing contrib modules."
- "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap"
+ "@drush -y pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap"
" > Installing Redis module."
"@drush -y pm:install redis"
" > Installing and configuring ClamAV."
diff --git a/composer.json b/composer.json
index 7d25667e3..5db4cfda9 100644
--- a/composer.json
+++ b/composer.json
@@ -22,6 +22,7 @@
"drupal/pathauto": "^1.14",
"drupal/redirect": "^1.12",
"drupal/redis": "^1.11",
+ "drupal/reroute_email": "^2.3@RC",
"drupal/robotstxt": "^1.6",
"drupal/search_api": "^1.40",
"drupal/search_api_solr": "^4.3.10",
diff --git a/scripts/custom/provision-10-example.sh b/scripts/custom/provision-10-example.sh
index 52abacf7b..1cd12d7d3 100755
--- a/scripts/custom/provision-10-example.sh
+++ b/scripts/custom/provision-10-example.sh
@@ -39,7 +39,7 @@ if echo "${environment}" | grep -q -e dev -e stage -e ci -e local; then
#;< MODULES
task "Installing contrib modules."
- drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect robotstxt shield stage_file_proxy xmlsitemap
+ drush pm:install admin_toolbar coffee config_split config_update media environment_indicator pathauto redirect reroute_email robotstxt shield stage_file_proxy xmlsitemap
#;> MODULES
#;< SERVICE_REDIS
diff --git a/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/tests/phpunit/Drupal/EnvironmentSettingsTest.php
index 9191c5f84..7fbcb8e59 100644
--- a/tests/phpunit/Drupal/EnvironmentSettingsTest.php
+++ b/tests/phpunit/Drupal/EnvironmentSettingsTest.php
@@ -307,6 +307,9 @@ public function testEnvironmentNoOverrides(): void {
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['system.performance']['cache']['page']['max_age'] = 900;
$this->assertConfig($config);
@@ -390,6 +393,9 @@ public function testEnvironmentOverrides(): void {
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['system.performance']['cache']['page']['max_age'] = 1800;
$this->assertConfig($config);
@@ -439,6 +445,9 @@ public function testEnvironmentLocal(): void {
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
$config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
@@ -489,6 +498,9 @@ public function testEnvironmentLocalContainer(): void {
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
$config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
@@ -542,6 +554,9 @@ public function testEnvironmentCircleCi(): void {
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
$config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
@@ -594,6 +609,9 @@ public function testEnvironmentGha(): void {
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
$config['system.logging']['error_level'] = 'all';
$config['system.performance']['cache']['page']['max_age'] = 900;
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE;
$config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE;
$this->assertConfig($config);
@@ -641,6 +659,9 @@ public function testEnvironmentAcquiaDynamic(): void {
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -686,6 +707,9 @@ public function testEnvironmentAcquiaDev(): void {
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -731,6 +755,9 @@ public function testEnvironmentAcquiaStage(): void {
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -774,6 +801,9 @@ public function testEnvironmentAcquiaProd(): void {
$config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_PROD;
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['system.performance']['cache']['page']['max_age'] = 900;
$config['system.performance']['css']['preprocess'] = TRUE;
$config['system.performance']['js']['preprocess'] = TRUE;
@@ -819,6 +849,9 @@ public function testEnvironmentAcquiaConfigPathOverride(): void {
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -872,6 +905,9 @@ public function testEnvironmentAcquiaConfigVcsDirectoryFallback(): void {
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -924,6 +960,9 @@ public function testEnvironmentLagoonPreview(): void {
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -979,6 +1018,9 @@ public function testEnvironmentLagoonDev(): void {
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
+ $config['reroute_email.settings']['enable'] = TRUE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -1034,6 +1076,9 @@ public function testEnvironmentLagoonTest(): void {
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
$config['robotstxt.settings']['content'] = "User-agent: *\nDisallow: /";
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['shield.settings']['shield_enable'] = TRUE;
$config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE;
$config['xmlsitemap_engines.settings']['submit'] = FALSE;
@@ -1088,6 +1133,9 @@ public function testEnvironmentLagoonProd(): void {
$config['environment_indicator.indicator']['name'] = self::ENVIRONMENT_PROD;
$config['environment_indicator.settings']['favicon'] = TRUE;
$config['environment_indicator.settings']['toolbar_integration'] = [TRUE];
+ $config['reroute_email.settings']['enable'] = FALSE;
+ $config['reroute_email.settings']['address'] = 'webmaster@your-site-domain.example';
+ $config['reroute_email.settings']['allowed'] = '*@your-site-domain.example';
$config['system.performance']['cache']['page']['max_age'] = 900;
$config['system.performance']['css']['preprocess'] = TRUE;
$config['system.performance']['js']['preprocess'] = TRUE;
diff --git a/tests/phpunit/Drupal/SwitchableSettingsTest.php b/tests/phpunit/Drupal/SwitchableSettingsTest.php
index 1719fbc39..a646e6ef0 100644
--- a/tests/phpunit/Drupal/SwitchableSettingsTest.php
+++ b/tests/phpunit/Drupal/SwitchableSettingsTest.php
@@ -680,6 +680,148 @@ public static function dataProviderShield(): \Iterator {
}
// phpcs:ignore #;> MODULE_SHIELD
+ // phpcs:ignore #;< MODULE_REROUTE_EMAIL
+
+ /**
+ * Test Reroute Email config.
+ */
+ #[DataProvider('dataProviderRerouteEmail')]
+ public function testRerouteEmail(string $env, array $vars, array $expected_present, array $expected_absent = []): void {
+ $this->setEnvVars($vars + ['DRUPAL_ENVIRONMENT' => $env]);
+
+ $this->requireSettingsFile();
+
+ $this->assertConfigContains($expected_present);
+ $this->assertConfigNotContains($expected_absent);
+ }
+
+ /**
+ * Data provider for testRerouteEmail().
+ */
+ public static function dataProviderRerouteEmail(): \Iterator {
+ // Local: disabled by default.
+ yield [
+ self::ENVIRONMENT_LOCAL,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@your-site-domain.example', 'allowed' => '*@your-site-domain.example'],
+ ],
+ ];
+
+ // CI: disabled by default.
+ yield [
+ self::ENVIRONMENT_CI,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@your-site-domain.example', 'allowed' => '*@your-site-domain.example'],
+ ],
+ ];
+
+ // Dev: enabled by default.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@your-site-domain.example', 'allowed' => '*@your-site-domain.example'],
+ ],
+ ];
+
+ // SUT: enabled by default.
+ yield [
+ self::ENVIRONMENT_SUT,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@your-site-domain.example', 'allowed' => '*@your-site-domain.example'],
+ ],
+ ];
+
+ // Stage: disabled by default.
+ yield [
+ self::ENVIRONMENT_STAGE,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@your-site-domain.example', 'allowed' => '*@your-site-domain.example'],
+ ],
+ ];
+
+ // Prod: disabled by default.
+ yield [
+ self::ENVIRONMENT_PROD,
+ [],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@your-site-domain.example', 'allowed' => '*@your-site-domain.example'],
+ ],
+ ];
+
+ // Dev with DRUPAL_REROUTE_EMAIL_DISABLED: forced off.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => 1,
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE],
+ ],
+ ];
+
+ // SUT with DRUPAL_REROUTE_EMAIL_DISABLED: forced off.
+ yield [
+ self::ENVIRONMENT_SUT,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => 1,
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE],
+ ],
+ ];
+
+ // Custom address and allowed list.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_ADDRESS' => 'dev@example.com',
+ 'DRUPAL_REROUTE_EMAIL_ALLOWED' => '*@example.com',
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE, 'address' => 'dev@example.com', 'allowed' => '*@example.com'],
+ ],
+ ];
+
+ // DRUPAL_REROUTE_EMAIL_DISABLED with empty value: not disabled.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => '',
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE],
+ ],
+ ];
+
+ // DRUPAL_REROUTE_EMAIL_DISABLED with 0: not disabled.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => 0,
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => TRUE],
+ ],
+ ];
+
+ // DRUPAL_REROUTE_EMAIL_DISABLED with string '1': disabled.
+ yield [
+ self::ENVIRONMENT_DEV,
+ [
+ 'DRUPAL_REROUTE_EMAIL_DISABLED' => '1',
+ ],
+ [
+ 'reroute_email.settings' => ['enable' => FALSE],
+ ],
+ ];
+ }
+
+ // phpcs:ignore #;> MODULE_REROUTE_EMAIL
// phpcs:ignore #;< MODULE_STAGE_FILE_PROXY
/**
diff --git a/web/sites/default/includes/modules/settings.reroute_email.php b/web/sites/default/includes/modules/settings.reroute_email.php
new file mode 100644
index 000000000..1b431c173
--- /dev/null
+++ b/web/sites/default/includes/modules/settings.reroute_email.php
@@ -0,0 +1,26 @@
+