public function DomainTokenTest::testDomainTokens in Domain Access 8
Tests the handling of an inbound request.
File
- domain/
tests/ src/ Functional/ DomainTokenTest.php, line 24
Class
- DomainTokenTest
- Tests the domain token handler.
Namespace
Drupal\Tests\domain\FunctionalCode
public function testDomainTokens() {
// No domains should exist.
$this
->domainTableIsEmpty();
// Create four new domains programmatically.
$this
->domainCreateTestDomains(4);
// Since we cannot read the service request, we place a block
// which shows the current domain token information.
$this
->drupalPlaceBlock('domain_token_block');
// To get around block access, let the anon user view the block.
user_role_grant_permissions(AccountInterface::ANONYMOUS_ROLE, [
'view domain information',
]);
// Test the response of the default home page.
foreach (\Drupal::entityTypeManager()
->getStorage('domain')
->loadMultiple() as $domain) {
$this
->drupalGet($domain
->getPath());
$this
->assertRaw($domain
->label(), 'Loaded the proper domain.');
$this
->assertRaw('<th>Token</th>', 'Token values printed.');
foreach ($this
->tokenList() as $token => $callback) {
$this
->assertRaw("<td>{$token}</td>", "{$token} found correctly.");
// The URL token is sensitive to the path, which is /user, but that
// does not come across when making the callback outside of a request
// context.
$value = $domain
->{$callback}();
if ($token == '[domain:url]') {
$value = str_replace('user', '', $value);
if (substr($value, -1) != '/') {
$value .= '/';
}
}
$this
->assertRaw('<td>' . $value . '</td>', 'Value set correctly to ' . $value);
}
}
}