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 DomainSourceExcludeTest extends DomainTestBase {
public static $modules = [
'domain',
'domain_source',
'field',
'node',
'user',
];
protected function setUp() {
parent::setUp();
DomainTestBase::domainCreateTestDomains(2);
}
public function testDomainSourceExclude() {
$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,
];
$uri = 'entity:' . $path;
$uri_path = '/' . $path;
$options = [];
$url = Url::fromRoute($route_name, $route_parameters, $options)
->toString();
$this
->assertEquals($expected, $url, 'fromRoute');
$url = Url::fromUserInput($uri_path, $options)
->toString();
$this
->assertEquals($expected, $url, 'fromUserInput');
$url = Url::fromUri($uri, $options)
->toString();
$this
->assertEquals($expected, $url, 'fromUri');
$config = $this
->config('domain_source.settings');
$config
->set('exclude_routes', [
'edit_form' => 'edit_form',
])
->save();
$path = 'node/1/edit';
$expected = base_path() . $path;
$route_name = 'entity.node.edit_form';
$route_parameters = [
'node' => 1,
];
$uri = 'internal:/' . $path;
$uri_path = '/' . $path;
$options = [];
drupal_flush_all_caches();
$url = Url::fromRoute($route_name, $route_parameters, $options)
->toString();
$this
->assertEquals($expected, $url, 'fromRoute');
$url = Url::fromUserInput($uri_path, $options)
->toString();
$this
->assertEquals($expected, $url, 'fromUserInput');
$url = Url::fromUri($uri, $options)
->toString();
$this
->assertEquals($expected, $url, 'fromUri');
}
}