DomainSourceTrustedHostTest.php in Domain Access 8
File
domain_source/tests/src/Functional/DomainSourceTrustedHostTest.php
View source
<?php
namespace Drupal\Tests\domain_source\Functional;
use Drupal\Core\Url;
use Drupal\Tests\domain\Functional\DomainTestBase;
use Drupal\domain_source\DomainSourceElementManagerInterface;
class DomainSourceTrustedHostTest extends DomainTestBase {
public static $modules = [
'domain',
'domain_source',
'field',
'node',
'user',
];
protected function setUp() {
parent::setUp();
DomainTestBase::domainCreateTestDomains(3);
}
public function testDomainSourceUrls() {
$id = 'one_example_com';
$node_values = [
'type' => 'page',
'title' => 'foo',
DomainSourceElementManagerInterface::DOMAIN_SOURCE_FIELD => $id,
];
$node = $this
->createNode($node_values);
$path = 'node/1';
$domains = \Drupal::entityTypeManager()
->getStorage('domain')
->loadMultiple();
$source = $domains[$id];
$expected = $source
->getPath() . $path;
$route_name = 'entity.node.canonical';
$route_parameters = [
'node' => 1,
];
$options = [];
$url = Url::fromRoute($route_name, $route_parameters, $options)
->toString();
$this
->assertTrue($url == $expected, 'fromRoute');
$domain2 = $domains['two_example_com'];
$settings['settings']['trusted_host_patterns'] = (object) [
'value' => [
'^' . $this
->prepareTrustedHostname($domain2
->getHostname()) . '$',
],
'required' => TRUE,
];
$this
->writeSettings($settings);
$this
->drupalGet($url);
$this
->assertRaw('The provided host name is not valid for this server.');
$node->{DomainSourceElementManagerInterface::DOMAIN_SOURCE_FIELD} = $domain2
->id();
$node
->save();
$expected = $domain2
->getPath() . $path;
$url = Url::fromRoute($route_name, $route_parameters, $options)
->toString();
$this
->assertTrue($url == $expected, 'fromRoute');
$this
->drupalGet($url);
$this
->assertResponse(200, 'Url is validated by trusted host settings.');
}
}