You are here

public function SecureLoginTest::testHttpSecureLogin in Secure Login 8

Ensure a request over HTTP gets 301 redirected to HTTPS.

File

tests/src/Functional/SecureLoginTest.php, line 15

Class

SecureLoginTest
Basic tests for Secure login module.

Namespace

Drupal\Tests\securelogin\Functional

Code

public function testHttpSecureLogin() {
  global $base_url;

  // Disable redirect following.
  $maximumMetaRefreshCount = $this->maximumMetaRefreshCount;
  $this->maximumMetaRefreshCount = 0;
  if (method_exists($this
    ->getSession()
    ->getDriver(), 'getClient')) {
    $this
      ->getSession()
      ->getDriver()
      ->getClient()
      ->followRedirects(FALSE);
  }
  $this
    ->drupalGet($this
    ->httpUrl('user/login'));
  $this
    ->assertSession()
    ->statusCodeEquals(301);
  $this
    ->assertSame(0, strpos($this
    ->getSession()
    ->getResponseHeader('Location'), str_replace('http://', 'https://', $base_url)), 'Location header uses the secure base URL.');
  if (method_exists($this
    ->getSession()
    ->getDriver(), 'getClient')) {
    $this
      ->getSession()
      ->getDriver()
      ->getClient()
      ->followRedirects(TRUE);
  }
  $this->maximumMetaRefreshCount = $maximumMetaRefreshCount;
}