View source
<?php
namespace Drupal\Tests\domain_access\Functional;
use Drupal\Core\Url;
use Drupal\Tests\domain\Functional\DomainTestBase;
use Drupal\domain_access\DomainAccessManagerInterface;
class DomainAccessContentUrlsTest extends DomainTestBase {
public static $modules = [
'domain',
'domain_access',
'field',
'node',
'user',
];
protected function setUp() {
parent::setUp();
DomainTestBase::domainCreateTestDomains(4);
}
public function testDomainContentUrls() {
$id = 'one_example_com';
$nodes_values = [
'type' => 'page',
'title' => 'foo',
DomainAccessManagerInterface::DOMAIN_ACCESS_FIELD => [
'example_com',
'one_example_com',
'two_example_com',
],
DomainAccessManagerInterface::DOMAIN_ACCESS_ALL_FIELD => 0,
];
$node = $this
->createNode($nodes_values);
$path = 'node/1';
$domains = \Drupal::entityTypeManager()
->getStorage('domain')
->loadMultiple();
$route_name = 'entity.node.canonical';
$route_parameters = [
'node' => 1,
];
$uri = 'entity:' . $path;
$uri_path = '/' . $path;
$expected = base_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');
$paths = \Drupal::service('domain_access.manager');
$urls = $paths
->getContentUrls($node);
$expected = [
'example_com' => $domains['example_com']
->getPath() . 'node/1',
$id => $domains[$id]
->getPath() . 'node/1',
'two_example_com' => $domains['two_example_com']
->getPath() . 'node/1',
];
$this
->assertEquals($expected, $urls);
}
}