View source
<?php
namespace Drupal\Tests\domain_source\Functional;
use Drupal\Core\Url;
use Drupal\Tests\domain\Functional\DomainTestBase;
use Drupal\domain_source\DomainSourceElementManagerInterface;
use Drupal\language\Entity\ConfigurableLanguage;
class DomainSourceLanguageTest extends DomainTestBase {
public static $modules = [
'language',
'content_translation',
'domain',
'domain_source',
'field',
'node',
'user',
];
protected function setUp() {
parent::setUp();
DomainTestBase::domainCreateTestDomains(3);
ConfigurableLanguage::createFromLangcode('hu')
->save();
ConfigurableLanguage::createFromLangcode('af')
->save();
\Drupal::service('content_translation.manager')
->setEnabled('node', 'page', TRUE);
}
public function testDomainSourceLanguage() {
$id = 'one_example_com';
$node = $this
->drupalCreateNode([
'body' => [
[],
],
'status' => 1,
DomainSourceElementManagerInterface::DOMAIN_SOURCE_FIELD => $id,
]);
$storage = \Drupal::entityTypeManager()
->getStorage('node');
$node = $storage
->load(1);
$id2 = 'two_example_com';
$translation = $node
->addTranslation('af');
$translation->title->value = $this
->randomString();
$translation->{DomainSourceElementManagerInterface::DOMAIN_SOURCE_FIELD} = $id2;
$translation->status = 1;
$node
->save();
$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
->assertTrue($url == $expected, 'fromRoute');
$url = Url::fromUserInput($uri_path, $options)
->toString();
$this
->assertTrue($url == $expected, 'fromUserInput');
$url = Url::fromUri($uri, $options)
->toString();
$this
->assertTrue($url == $expected, 'fromUri');
$path = 'node/1';
$source = $domains[$id2];
$expected = $source
->getPath() . 'af/' . $path;
$route_name = 'entity.node.canonical';
$route_parameters = [
'node' => 1,
];
$uri = 'entity:' . $path;
$uri_path = '/' . $path;
$language = \Drupal::entityTypeManager()
->getStorage('configurable_language')
->load('af');
$options = [
'language' => $language,
];
$translation = $node
->getTranslation('af');
$this
->assertTrue(domain_source_get($translation) == $id2, domain_source_get($translation));
drupal_flush_all_caches();
$url = Url::fromRoute($route_name, $route_parameters, $options)
->toString();
$this
->assertTrue($url == $expected, 'fromRoute');
$url = Url::fromUserInput($uri_path, $options)
->toString();
$this
->assertTrue($url == $expected, 'fromUserInput');
$url = Url::fromUri($uri, $options)
->toString();
$this
->assertTrue($url == $expected, 'fromUri');
}
}