From 16ee80b4152fba92006bedef2f7d3f229972fdab Mon Sep 17 00:00:00 2001 From: Robert Ragas Date: Wed, 23 Aug 2023 11:25:16 +0200 Subject: [PATCH] Fix a typo in de github workflow for behat testing with symfony mailer settings, also change the behat entity system for symfony mailer to configuration settings --- .github/workflows/behat.yml | 2 +- .../behat/features/bootstrap/EmailContext.php | 55 ++++++++----------- tests/behat/mail-spool/.gitignore | 1 - 3 files changed, 24 insertions(+), 34 deletions(-) delete mode 100644 tests/behat/mail-spool/.gitignore diff --git a/.github/workflows/behat.yml b/.github/workflows/behat.yml index ed3fa8c8933..37667b5a692 100644 --- a/.github/workflows/behat.yml +++ b/.github/workflows/behat.yml @@ -231,7 +231,7 @@ jobs: # Make sure symfony_mailer is configured for our CI. drush cset symfony_mailer.mailer_transport.sendmail plugin 'smtp' -y drush cset symfony_mailer.mailer_transport.sendmail configuration.user '' -y - drush cset symfony_mailer.mailer_transport.sendmail configuration.passs '' -y + drush cset symfony_mailer.mailer_transport.sendmail configuration.pass '' -y drush cset symfony_mailer.mailer_transport.sendmail configuration.host 'mailcatcher' -y drush cset symfony_mailer.mailer_transport.sendmail configuration.port '1025' -y diff --git a/tests/behat/features/bootstrap/EmailContext.php b/tests/behat/features/bootstrap/EmailContext.php index 0fc8db47f92..28688bbcfcf 100644 --- a/tests/behat/features/bootstrap/EmailContext.php +++ b/tests/behat/features/bootstrap/EmailContext.php @@ -9,8 +9,6 @@ use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Finder\Finder; use Symfony\Component\HttpFoundation\File\File; -use Drupal\symfony_mailer\Entity\MailerTransport; -use Drupal\symfony_mailer\Entity\MailerPolicy; class EmailContext implements Context { @@ -20,27 +18,18 @@ class EmailContext implements Context { * @BeforeScenario @email-spool */ public function enableEmailSpool() { - if ($default = MailerTransport::loadDefault()) { - \Drupal::state()->set('default_mailer_transport', $default->id()); - } - - if (!$entity = MailerTransport::load('behat_file_spool')) { - $entity = MailerTransport::create([ - 'id' => 'behat_file_spool', - 'label' => 'Behat File Spool', - 'plugin' => 'null', - ]); - $entity->save(); - } - - $entity->setAsDefault(); + // Set transport to null to stop sending out emails. + $config = \Drupal::configFactory() + ->getEditable('symfony_mailer.mailer_transport.sendmail'); + $config->set('plugin', 'null')->save(); + $config->set('configuration', [])->save(); // Add the mail logger plugin to the default policy. - $default_mailer_policy = MailerPolicy::load('_'); - $mailer_configuration = $default_mailer_policy->getConfiguration(); + $config = \Drupal::configFactory() + ->getEditable('symfony_mailer.mailer_policy._'); + $mailer_configuration = $config->get('configuration'); $mailer_configuration['log_mail'] = ['spool_directory' => $this->getSpoolDir()]; - $default_mailer_policy->setConfiguration($mailer_configuration); - $default_mailer_policy->save(); + $config->set('configuration', $mailer_configuration)->save(); // Clean up emails that were left behind. $this->purgeSpool(); @@ -52,20 +41,22 @@ public function enableEmailSpool() { * @AfterScenario @email-spool */ public function disableEmailSpool() { - // Update Drupal configuration. - MailerTransport::load('behat_file_spool')->delete(); - - if ($default_id = \Drupal::state()->get('default_mailer_transport')) { - MailerTransport::load($default_id)->setAsDefault(); - \Drupal::state()->delete('default_mailer_transport'); - } + // Restore transport back to mailcatcher. + $config = \Drupal::configFactory() + ->getEditable('symfony_mailer.mailer_transport.sendmail'); + $config->set('plugin', 'stmp'); + $config->set('configuration.user', ''); + $config->set('configuration.pass', ''); + $config->set('configuration.host', 'mailcatcher'); + $config->set('configuration.port', '1025'); + $config->save(); // Remove the mail logger plugin to the default policy. - $default_mailer_policy = MailerPolicy::load('_'); - $mailer_configuration = $default_mailer_policy->getConfiguration(); + $config = \Drupal::configFactory() + ->getEditable('symfony_mailer.mailer_policy._'); + $mailer_configuration = $config->get('configuration'); unset($mailer_configuration['log_mail']); - $default_mailer_policy->setConfiguration($mailer_configuration); - $default_mailer_policy->save(); + $config->set('configuration', $mailer_configuration)->save(); } /** @@ -112,7 +103,7 @@ public function getEmailContent($file) { * The path where the spooled emails are stored. */ protected function getSpoolDir() { - $path = \Drupal::service('extension.list.profile')->getPath('social') . '/tests/behat/features/mailer-spool'; + $path = \Drupal::service('extension.list.profile')->getPath('social') . '/tests/behat/mail-spool'; if (!file_exists($path)) { mkdir($path, 0777, true); } diff --git a/tests/behat/mail-spool/.gitignore b/tests/behat/mail-spool/.gitignore deleted file mode 100644 index 843ff5d1a08..00000000000 --- a/tests/behat/mail-spool/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.message