/** * Tests configuration options and the site-wide contact form. */ public function testContactStorage() { // Create and login administrative user. $admin_user = $this->drupalCreateUser(array('access site-wide contact form', 'administer contact forms', 'administer users', 'administer account settings', 'administer contact_message fields')); $this->drupalLogin($admin_user); // Create first valid category. $mail = '*****@*****.**'; $this->addCategory($id = drupal_strtolower($this->randomName(16)), $label = $this->randomName(16), implode(',', array($mail)), '', TRUE); $this->assertRaw(t('Category %label has been added.', array('%label' => $label))); // Ensure that anonymous can submit site-wide contact form. user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access site-wide contact form')); $this->drupalLogout(); $this->drupalGet('contact'); $this->assertText(t('Your email address')); $this->assertNoText(t('Category')); $this->submitContact($name = $this->randomName(16), $mail, $subject = $this->randomName(16), $id, $message = $this->randomName(64)); $this->assertText(t('Your message has been sent.')); $messages = Message::loadMultiple(); /** @var \Drupal\contact\Entity\Message $message */ $message = reset($messages); $this->assertEqual($message->getCategory()->id(), $id); $this->assertEqual($message->getSenderName(), $name); $this->assertEqual($message->getSubject(), $subject); $this->assertEqual($message->getSenderMail(), $mail); }
/** * Tests configuration options and the site-wide contact form. */ public function testContactStorage() { // Create and login administrative user. $admin_user = $this->drupalCreateUser(array('access site-wide contact form', 'administer contact forms', 'administer users', 'administer account settings', 'administer contact_message fields')); $this->drupalLogin($admin_user); // Create first valid contact form. $mail = '*****@*****.**'; $this->addContactForm($id = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode(',', array($mail)), '', TRUE, ['send_a_pony' => 1]); $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label))); // Ensure that anonymous can submit site-wide contact form. user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, array('access site-wide contact form')); $this->drupalLogout(); $this->drupalGet('contact'); $this->assertText(t('Your email address')); $this->assertNoText(t('Form')); $this->submitContact($name = $this->randomMachineName(16), $mail, $subject = $this->randomMachineName(16), $id, $message = $this->randomMachineName(64)); $this->assertText(t('Your message has been sent.')); $messages = Message::loadMultiple(); /** @var \Drupal\contact\Entity\Message $message */ $message = reset($messages); $this->assertEqual($message->getContactForm()->id(), $id); $this->assertTrue($message->getContactForm()->getThirdPartySetting('contact_storage_test', 'send_a_pony', FALSE)); $this->assertEqual($message->getSenderName(), $name); $this->assertEqual($message->getSubject(), $subject); $this->assertEqual($message->getSenderMail(), $mail); $config = $this->config("contact.form.{$id}"); $this->assertEqual($config->get('id'), $id); }
/** * Test that tokens are properly created for an entity's base fields. */ public function testBaseFieldTokens() { // Create a new contact_message entity and verify that tokens are generated // for its base fields. The contact_message entity type is used because it // provides no tokens by default. $contact_form = ContactForm::create(['id' => 'form_id']); $contact_form->save(); $entity = Message::create(['contact_form' => 'form_id', 'uuid' => '123', 'langcode' => 'en', 'name' => 'Test name', 'mail' => 'Test mail', 'subject' => 'Test subject', 'message' => 'Test message', 'copy' => FALSE]); $entity->save(); $this->assertTokens('contact_message', ['contact_message' => $entity], ['uuid' => Markup::create('123'), 'langcode' => Markup::create('English'), 'name' => Markup::create('Test name'), 'mail' => Markup::create('Test mail'), 'subject' => Markup::create('Test subject'), 'message' => Markup::create('Test message'), 'copy' => 'Off']); // Test the metadata of one of the tokens. $tokenService = \Drupal::service('token'); $token_info = $tokenService->getTokenInfo('contact_message', 'subject'); $this->assertEquals($token_info['name'], 'Subject'); $this->assertEquals($token_info['description'], 'Text (plain) field.'); $this->assertEquals($token_info['module'], 'token'); // Verify that node entity type doesn't have a uid token. $this->assertNull($tokenService->getTokenInfo('node', 'uid')); }