'Email example', 'description' => 'Verify the email submission using the contact form.', 'group' => 'Examples', ); } function setUp(){ // Enable the exmaple module. parent::setUp('email_example'); } /** * Verify the functionality of the example module. */ function testContactForm() { // Create and login user. $account = $this->drupalCreateUser(); $this->drupalLogin($account); $language = language_default(); // First try to send to an invalid email address. $email_options = array( 'email' => $this->randomName(), 'message' => $this->randomString(128), ); $result = $this->drupalPost('example/email_example', $email_options, t('Submit')); // Verify that email address is invalid and email was not sent. $this->assertText(t('That e-mail address is not valid.'), t('Options were validated and form submitted.')); $this->assertTrue(!count($this->drupalGetMails()), t('No email was sent.')); // Now try with a valid email address. $email_options['email'] = $this->randomName() . '@' . $this->randomName() . '.drupal'; $result = $this->drupalPost('example/email_example', $email_options, t('Submit')); // Verify that email address is valid and email was sent. $this->assertText(t('Your message has been sent.'), t('Options were validated and form submitted.')); $this->assertTrue(count($this->drupalGetMails()), t('An email has been sent.')); // Validate sent email. Try to find it using the recipient argument. $email = $this->drupalGetMails(array('email' => $email_options['email'])); // Grab the first email. $email = $email[0]; // Verify email recipient. $this->assertEqual( $email['to'], $email_options['email'], t('Email recipient successfully verified.') ); // Verify email subject. $this->assertEqual( $email['subject'], t('E-mail sent from @site-name', array('@site-name' => variable_get('site_name', 'Drupal')), $language->language), t('Email subject successfully verified.') ); // Verify email body. $this->assertTrue( strstr( $email['body'], t('@name sent you the following message:', array('@name' => $account->name), $language->language) ), t('Email body successfully verified.') ); // Verify that signature is attached. $this->assertTrue( strstr( $email['body'], t("--\nMail altered by email_example module.", array(), $language->language) ), t('Email signature successfully verified.') ); } }