Version 1
[yaffs-website] / web / core / modules / contact / tests / src / Kernel / MessageEntityTest.php
diff --git a/web/core/modules/contact/tests/src/Kernel/MessageEntityTest.php b/web/core/modules/contact/tests/src/Kernel/MessageEntityTest.php
new file mode 100644 (file)
index 0000000..e7343b9
--- /dev/null
@@ -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));
+  }
+
+}