Newer
Older
<?php
/**
* @file
* Contains \Drupal\contact\Tests\MessageEntityTest.
*/
namespace Drupal\contact\Tests;
use Drupal\contact\Entity\Message;
Alex Pott
committed
use Drupal\system\Tests\Entity\EntityUnitTestBase;
/**
* Tests the message entity class.
*
* @group contact
* @see \Drupal\contact\Entity\Message
*/
Alex Pott
committed
class MessageEntityTest extends EntityUnitTestBase {
/**
* Modules to enable.
*
* @var array
*/
Alex Pott
committed
public static $modules = array(
'system',
'contact',
'field',
'user',
'contact_test',
);
protected function setUp() {
parent::setUp();
$this->installConfig(array('contact', 'contact_test'));
}
/**
* Test some of the methods.
*/
public function testMessageMethods() {
catch
committed
$message_storage = $this->container->get('entity.manager')->getStorage('contact_message');
Alex Pott
committed
$message = $message_storage->create(array('contact_form' => 'feedback'));
// Check for empty values first.
$this->assertEqual($message->getMessage(), '');
$this->assertEqual($message->getSenderName(), '');
$this->assertEqual($message->getSenderMail(), '');
$this->assertFalse($message->copySender());
// Check for default values.
Alex Pott
committed
$this->assertEqual('feedback', $message->getContactForm()->id());
$this->assertFalse($message->isPersonal());
// Set some values and check for them afterwards.
$message->setMessage('welcome_message');
$message->setSenderName('sender_name');
$message->setSenderMail('sender_mail');
$message->setCopySender(TRUE);
$this->assertEqual($message->getMessage(), 'welcome_message');
$this->assertEqual($message->getSenderName(), 'sender_name');
$this->assertEqual($message->getSenderMail(), 'sender_mail');
$this->assertTrue($message->copySender());
Alex Pott
committed
$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::entityManager()->getAccessControlHandler('contact_message')->createAccess(NULL, $no_access_user));
$this->assertTrue(\Drupal::entityManager()->getAccessControlHandler('contact_message')->createAccess(NULL, $access_user));
$this->assertTrue($message->access('edit', $admin));
$this->assertFalse($message->access('edit', $access_user));