DomainAccessGrantsTest.php in Domain Access 8
File
domain_access/tests/src/Functional/DomainAccessGrantsTest.php
View source
<?php
namespace Drupal\Tests\domain_access\Functional;
use Drupal\Core\Database\Database;
use Drupal\Tests\domain\Functional\DomainTestBase;
use Drupal\domain_access\DomainAccessManagerInterface;
class DomainAccessGrantsTest extends DomainTestBase {
protected $accessHandler;
public static $modules = [
'domain',
'domain_access',
'field',
'node',
];
protected function setUp() {
parent::setUp();
Database::getConnection()
->delete('node_access')
->execute();
}
public function testDomainAccessGrants() {
$node_storage = \Drupal::entityTypeManager()
->getStorage('node');
$this
->domainCreateTestDomains(5);
$domains = \Drupal::entityTypeManager()
->getStorage('domain')
->loadMultiple();
$active_domain = array_rand($domains, 1);
$domain = $domains[$active_domain];
$node1 = $this
->drupalCreateNode([
'type' => 'article',
DomainAccessManagerInterface::DOMAIN_ACCESS_FIELD => [
$domain
->id(),
],
]);
$this
->assertNotNull($node_storage
->load($node1
->id()), 'Article node created.');
foreach ($domains as $domain) {
$path = $domain
->getPath() . 'node/' . $node1
->id();
$this
->drupalGet($path);
if ($domain
->id() == $active_domain) {
$this
->assertResponse(200);
$this
->assertRaw($node1
->getTitle(), 'Article found on domain.');
}
else {
$this
->assertResponse(403);
}
}
$node2 = $this
->drupalCreateNode([
'type' => 'article',
DomainAccessManagerInterface::DOMAIN_ACCESS_FIELD => [
$domain
->id(),
],
DomainAccessManagerInterface::DOMAIN_ACCESS_ALL_FIELD => 1,
]);
$this
->assertNotNull($node_storage
->load($node2
->id()), 'Article node created.');
foreach ($domains as $domain) {
$path = $domain
->getPath() . 'node/' . $node2
->id();
$this
->drupalGet($path);
$this
->assertResponse(200);
$this
->assertRaw($node2
->getTitle(), 'Article found on domain.');
}
}
}