View source
<?php
namespace Drupal\Tests\domain_content\Functional;
use Drupal\Tests\domain\Functional\DomainTestBase;
use Drupal\domain_access\DomainAccessManagerInterface;
abstract class DomainContentTestBase extends DomainTestBase {
public static $modules = [
'domain',
'domain_content',
];
public $domains;
protected function setUp() {
parent::setUp();
$this
->domainCreateTestDomains(5);
$this->domains = \Drupal::entityTypeManager()
->getStorage('domain')
->loadMultiple();
}
public function createDomainContent() {
foreach ($this->domains as $id => $domain) {
for ($i = 0; $i < 5; $i++) {
$this
->drupalCreateNode([
'type' => 'article',
DomainAccessManagerInterface::DOMAIN_ACCESS_FIELD => [
$id,
],
DomainAccessManagerInterface::DOMAIN_ACCESS_ALL_FIELD => $id == 'one_example_com' ? 1 : 0,
]);
}
}
node_access_rebuild();
}
public function createDomainUsers() {
foreach ($this->domains as $id => $domain) {
for ($i = 0; $i < 5; $i++) {
$account[$id] = $this
->drupalCreateUser([
'access administration pages',
'access domain content',
'access domain content editors',
'publish to any domain',
'assign editors to any domain',
]);
$this
->addDomainsToEntity('user', $account[$id]
->id(), $id, DomainAccessManagerInterface::DOMAIN_ACCESS_FIELD);
if ($id == 'one_example_com') {
$this
->addDomainsToEntity('user', $account[$id]
->id(), 1, DomainAccessManagerInterface::DOMAIN_ACCESS_ALL_FIELD);
}
}
}
}
public function checkContent($content, $text) {
$content = preg_replace('/\\s+/u', ' ', $content);
$content = preg_replace('@>\\s+<@', '><', $content);
$regex = '/' . preg_quote($text, '/') . '/ui';
$message = sprintf('The text "%s" was found in the text of the current page.', $text);
$this
->assert((bool) preg_match($regex, $content), $message);
}
}