You are here

public function SwiftMailerSettingsTest::testTransportSettings in Swift Mailer 8.2

Tests the Transport Settings.

File

tests/src/FunctionalJavascript/SwiftMailerSettingsTest.php, line 51

Class

SwiftMailerSettingsTest
Tests the Transport and Message Settings UI.

Namespace

Drupal\Tests\swiftmailer\FunctionalJavascript

Code

public function testTransportSettings() {

  // Unauthorized user should not have access.
  $this
    ->drupalGet('admin/config/swiftmailer/transport');
  $this
    ->assertSession()
    ->pageTextContains('You are not authorized to access this page.');

  // Login..
  $this
    ->drupalLogin($this->adminUser);
  $this
    ->drupalGet('admin/config/swiftmailer/transport');
  $this
    ->assertSession()
    ->pageTextContains('Transport types');
  $session = $this
    ->getSession();
  $page = $session
    ->getPage();

  // Select Smtp tranport option.
  $page
    ->fillField('transport[type]', 'smtp');
  $this
    ->assertSession()
    ->waitForElementVisible('css', '.js-form-item-transport-configuration-smtp');
  $page
    ->fillField('transport[configuration][smtp][credential_provider]', 'swiftmailer');
  $page
    ->fillField('transport[configuration][smtp][credentials][swiftmailer][username]', 'example');
  $page
    ->fillField('transport[configuration][smtp][credentials][swiftmailer][password]', 'pass');
  $this
    ->submitForm([], 'Save configuration');
  $this
    ->assertSession()
    ->pageTextContains('using the SMTP transport type.');

  // Loading configuration to check if is set up correctly.
  $config = $this
    ->config('swiftmailer.transport');
  $transport = $config
    ->get('transport');
  $provider = $config
    ->get('smtp_credential_provider');
  $user = $config
    ->get('smtp_credentials.swiftmailer.username');
  $password = $config
    ->get('smtp_credentials.swiftmailer.password');
  $this
    ->assertEqual($transport, 'smtp');
  $this
    ->assertEqual($provider, 'swiftmailer');
  $this
    ->assertEqual($user, 'example');
  $this
    ->assertEqual($password, 'pass');

  // Select Spool tranport option.
  $page
    ->fillField('transport[type]', 'spool');
  $this
    ->assertSession()
    ->waitForElementVisible('css', '.js-form-item-transport-configuration-spool');
  $page
    ->fillField('transport[configuration][spool][directory]', 'aaaaa');
  $this
    ->submitForm([], 'Save configuration');
  $this
    ->assertSession()
    ->pageTextContains('using the Spool transport type.');

  // Loading configuration to check if is set up correctly.
  $config = $this
    ->config('swiftmailer.transport');
  $transport = $config
    ->get('transport');
  $directory = $config
    ->get('spool_directory');
  $this
    ->assertEqual($transport, 'spool');
  $this
    ->assertEqual($directory, 'aaaaa');

  // Select Sendmail tranport option.
  $page
    ->fillField('transport[type]', 'sendmail');
  $this
    ->assertSession()
    ->waitForElementVisible('css', '.js-form-item-transport-configuration-sendmail');
  $page
    ->fillField('transport[configuration][sendmail][path]', 'bbbbb');
  $this
    ->submitForm([], 'Save configuration');
  $this
    ->assertSession()
    ->pageTextContains('using the Sendmail transport type.');

  // Loading configuration to check if is set up correctly.
  $config = $this
    ->config('swiftmailer.transport');
  $transport = $config
    ->get('transport');
  $path = $config
    ->get('sendmail_path');
  $this
    ->assertEqual($transport, 'sendmail');
  $this
    ->assertEqual($path, 'bbbbb');
}