public function DomainAliasListHostnameTest::testDomainAliasEnvironments in Domain Access 8
Test for environment matching.
File
- domain_alias/tests/ src/ Functional/ DomainAliasListHostnameTest.php, line 26 
Class
- DomainAliasListHostnameTest
- Tests behavior for environment loading on the overview page.
Namespace
Drupal\Tests\domain_alias\FunctionalCode
public function testDomainAliasEnvironments() {
  $domain_storage = \Drupal::entityTypeManager()
    ->getStorage('domain');
  $alias_loader = \Drupal::entityTypeManager()
    ->getStorage('domain_alias');
  $domains = $domain_storage
    ->loadMultiple();
  $base = $this->baseHostname;
  $hostnames = [
    $base,
    'one.' . $base,
    'two.' . $base,
  ];
  // Our patterns should map to example.com, one.example.com, two.example.com.
  $patterns = [
    '*.' . $base,
    'four.' . $base,
    'five.' . $base,
  ];
  $i = 0;
  foreach ($domains as $domain) {
    $this
      ->assert($domain
      ->getHostname() == $hostnames[$i], 'Hostnames set correctly');
    $this
      ->assert($domain
      ->getCanonical() == $hostnames[$i], 'Canonical domains set correctly');
    $values = [
      'domain_id' => $domain
        ->id(),
      'pattern' => array_shift($patterns),
      'redirect' => 0,
      'environment' => 'local',
    ];
    $this
      ->createDomainAlias($values);
    $i++;
  }
  // Test the environment loader.
  $local = $alias_loader
    ->loadByEnvironment('local');
  $this
    ->assert(count($local) == 3, 'Three aliases set to local');
  // Test the environment matcher. $domain here is two.example.com.
  $match = $alias_loader
    ->loadByEnvironmentMatch($domain, 'local');
  $this
    ->assert(count($match) == 1, 'One environment match loaded');
  $alias = current($match);
  $this
    ->assert($alias
    ->getPattern() == 'five.' . $base, 'Proper pattern match loaded.');
  $admin = $this
    ->drupalCreateUser([
    'bypass node access',
    'administer content types',
    'administer node fields',
    'administer node display',
    'administer domains',
  ]);
  $this
    ->drupalLogin($admin);
  // Load an aliased domain.
  $this
    ->drupalGet($domain
    ->getScheme() . 'five.' . $base . '/admin/config/domain');
  $this
    ->assertSession()
    ->statusCodeEquals(200);
  // Save the form.
  $this
    ->pressButton('edit-submit');
  // Ensure the values haven't changed.
  $i = 0;
  $domains = $domain_storage
    ->loadMultiple();
  foreach ($domains as $domain) {
    $this
      ->assert($domain
      ->getHostname() == $hostnames[$i], 'Hostnames set correctly');
    $this
      ->assert($domain
      ->getCanonical() == $hostnames[$i], 'Canonical domains set correctly');
    $i++;
  }
}