View source
<?php
namespace Drupal\Tests\contact\Kernel;
use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
class MessageEntityTest extends EntityKernelTestBase {
protected static $modules = [
'system',
'contact',
'field',
'user',
'contact_test',
];
protected function setUp() : void {
parent::setUp();
$this
->installConfig([
'contact',
'contact_test',
]);
}
public function testMessageMethods() {
$message_storage = $this->container
->get('entity_type.manager')
->getStorage('contact_message');
$message = $message_storage
->create([
'contact_form' => 'feedback',
]);
$this
->assertEquals('', $message
->getMessage());
$this
->assertEquals('', $message
->getSenderName());
$this
->assertEquals('', $message
->getSenderMail());
$this
->assertFalse($message
->copySender());
$this
->assertEquals('feedback', $message
->getContactForm()
->id());
$this
->assertFalse($message
->isPersonal());
$message
->setMessage('welcome_message');
$message
->setSenderName('sender_name');
$message
->setSenderMail('sender_mail');
$message
->setCopySender(TRUE);
$this
->assertEquals('welcome_message', $message
->getMessage());
$this
->assertEquals('sender_name', $message
->getSenderName());
$this
->assertEquals('sender_mail', $message
->getSenderMail());
$this
->assertTrue($message
->copySender());
$no_access_user = $this
->createUser([
'uid' => 2,
]);
$access_user = $this
->createUser([
'uid' => 3,
], [
'access site-wide contact form',
]);
$admin = $this
->createUser([
'uid' => 4,
], [
'administer contact forms',
]);
$this
->assertFalse(\Drupal::entityTypeManager()
->getAccessControlHandler('contact_message')
->createAccess(NULL, $no_access_user));
$this
->assertTrue(\Drupal::entityTypeManager()
->getAccessControlHandler('contact_message')
->createAccess(NULL, $access_user));
$this
->assertTrue($message
->access('update', $admin));
$this
->assertFalse($message
->access('update', $access_user));
}
}