Mercurial > hg > isophonics-drupal-site
diff core/modules/contact/tests/src/Kernel/MessageEntityTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/contact/tests/src/Kernel/MessageEntityTest.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,71 @@ +<?php + +namespace Drupal\Tests\contact\Kernel; + +use Drupal\KernelTests\Core\Entity\EntityKernelTestBase; + +/** + * Tests the message entity class. + * + * @group contact + * @see \Drupal\contact\Entity\Message + */ +class MessageEntityTest extends EntityKernelTestBase { + + /** + * Modules to enable. + * + * @var array + */ + public static $modules = [ + 'system', + 'contact', + 'field', + 'user', + 'contact_test', + ]; + + protected function setUp() { + parent::setUp(); + $this->installConfig(['contact', 'contact_test']); + } + + /** + * Test some of the methods. + */ + public function testMessageMethods() { + $message_storage = $this->container->get('entity.manager')->getStorage('contact_message'); + $message = $message_storage->create(['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. + $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()); + + $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)); + } + +}