Skip to content
Snippets Groups Projects
Commit ac7313dd authored by Alex Pott's avatar Alex Pott
Browse files

Issue #2742995 by Jo Fitzgerald, claudiu.cristea, naveenvalecha, klausi,...

Issue #2742995 by Jo Fitzgerald, claudiu.cristea, naveenvalecha, klausi, dawehner, bighappyface: Convert web tests to browser tests for contact module
parent 7d47a589
No related branches found
No related tags found
2 merge requests!7452Issue #1797438. HTML5 validation is preventing form submit and not fully...,!789Issue #3210310: Adjust Database API to remove deprecated Drupal 9 code in Drupal 10
<?php
namespace Drupal\contact\Tests;
namespace Drupal\Tests\contact\Functional;
use Drupal\Component\Utility\SafeMarkup;
use Drupal\Component\Render\PlainTextOutput;
use Drupal\Core\Session\AccountInterface;
use Drupal\simpletest\WebTestBase;
use Drupal\Core\Test\AssertMailTrait;
use Drupal\system\Tests\Cache\AssertPageCacheContextsAndTagsTrait;
use Drupal\Tests\BrowserTestBase;
use Drupal\user\RoleInterface;
/**
......@@ -13,7 +15,10 @@
*
* @group contact
*/
class ContactPersonalTest extends WebTestBase {
class ContactPersonalTest extends BrowserTestBase {
use AssertMailTrait;
use AssertPageCacheContextsAndTagsTrait;
/**
* Modules to enable.
......@@ -67,7 +72,7 @@ public function testSendPersonalContactMessage() {
$this->drupalGet('user/' . $this->contactUser->id() . '/contact');
$this->assertEscaped($mail);
$message = $this->submitPersonalContact($this->contactUser);
$mails = $this->drupalGetMails();
$mails = $this->getMails();
$this->assertEqual(1, count($mails));
$mail = $mails[0];
$this->assertEqual($mail['to'], $this->contactUser->getEmail());
......
<?php
namespace Drupal\contact\Tests;
namespace Drupal\Tests\contact\Functional;
use Drupal\Component\Utility\Unicode;
use Drupal\contact\Entity\ContactForm;
use Drupal\Core\Mail\MailFormatHelper;
use Drupal\Core\Url;
use Drupal\Core\Test\AssertMailTrait;
use Drupal\field_ui\Tests\FieldUiTestTrait;
use Drupal\simpletest\WebTestBase;
use Drupal\Tests\BrowserTestBase;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\user\RoleInterface;
/**
* Tests site-wide contact form functionality.
*
* @see \Drupal\contact\Tests\ContactStorageTest
* @see \Drupal\Tests\contact\Functional\ContactStorageTest
*
* @group contact
*/
class ContactSitewideTest extends WebTestBase {
class ContactSitewideTest extends BrowserTestBase {
use FieldUiTestTrait;
use AssertMailTrait;
/**
* Modules to enable.
......@@ -265,15 +266,13 @@ public function testSiteWideContact() {
$this->assertTrue(!empty($view_link), 'Contact listing links to contact form.');
// Find out in which row the form we want to add a field to is.
$i = 0;
foreach ($this->xpath('//table/tbody/tr') as $row) {
if (((string) $row->td[0]->a) == $label) {
if ($row->findLink($label)) {
$row->clickLink('Manage fields');
break;
}
$i++;
}
$this->clickLink(t('Manage fields'), $i);
$this->assertResponse(200);
$this->clickLink(t('Add field'));
$this->assertResponse(200);
......@@ -299,7 +298,7 @@ public function testSiteWideContact() {
$field_name . '[0][value]' => $this->randomMachineName(),
];
$this->drupalPostForm(NULL, $edit, t('Send message'));
$mails = $this->drupalGetMails();
$mails = $this->getMails();
$mail = array_pop($mails);
$this->assertEqual($mail['subject'], t('[@label] @subject', ['@label' => $label, '@subject' => $edit['subject[0][value]']]));
$this->assertTrue(strpos($mail['body'], $field_label));
......@@ -377,7 +376,7 @@ public function testAutoReply() {
$this->submitContact($this->randomMachineName(16), $email, $subject, 'foo', $this->randomString(128));
// We are testing the auto-reply, so there should be one email going to the sender.
$captured_emails = $this->drupalGetMails(['id' => 'contact_page_autoreply', 'to' => $email]);
$captured_emails = $this->getMails(['id' => 'contact_page_autoreply', 'to' => $email]);
$this->assertEqual(count($captured_emails), 1);
$this->assertEqual(trim($captured_emails[0]['body']), trim(MailFormatHelper::htmlToText($foo_autoreply)));
......@@ -386,14 +385,14 @@ public function testAutoReply() {
$this->submitContact($this->randomMachineName(16), $email, $this->randomString(64), 'bar', $this->randomString(128));
// Auto-reply for form 'bar' should result in one auto-reply email to the sender.
$captured_emails = $this->drupalGetMails(['id' => 'contact_page_autoreply', 'to' => $email]);
$captured_emails = $this->getMails(['id' => 'contact_page_autoreply', 'to' => $email]);
$this->assertEqual(count($captured_emails), 1);
$this->assertEqual(trim($captured_emails[0]['body']), trim(MailFormatHelper::htmlToText($bar_autoreply)));
// Verify that no auto-reply is sent when the auto-reply field is left blank.
$email = $this->randomMachineName(32) . '@example.com';
$this->submitContact($this->randomMachineName(16), $email, $this->randomString(64), 'no_autoreply', $this->randomString(128));
$captured_emails = $this->drupalGetMails(['id' => 'contact_page_autoreply', 'to' => $email]);
$captured_emails = $this->getMails(['id' => 'contact_page_autoreply', 'to' => $email]);
$this->assertEqual(count($captured_emails), 0);
// Verify that the current error message doesn't show, that the auto-reply
......@@ -404,7 +403,7 @@ public function testAutoReply() {
->save();
$this->submitContact($this->randomMachineName(16), $email, $this->randomString(64), 'foo', $this->randomString(128));
$this->assertNoText('Unable to send email. Contact the site administrator if the problem persists.');
$captured_emails = $this->drupalGetMails(['id' => 'contact_page_autoreply', 'to' => $email]);
$captured_emails = $this->getMails(['id' => 'contact_page_autoreply', 'to' => $email]);
$this->assertEqual(count($captured_emails), 0);
$this->drupalLogin($admin_user);
$this->drupalGet('admin/reports/dblog');
......
<?php
namespace Drupal\contact\Tests;
namespace Drupal\Tests\contact\Functional;
use Drupal\Component\Utility\Unicode;
use Drupal\contact\Entity\Message;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment