Mercurial > hg > isophonics-drupal-site
view core/modules/field/src/Tests/Email/EmailFieldTest.php @ 5:c69a71b4f40f
Add slideshow module
author | Chris Cannam |
---|---|
date | Thu, 07 Dec 2017 14:46:23 +0000 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\field\Tests\Email; use Drupal\Component\Utility\Unicode; use Drupal\entity_test\Entity\EntityTest; use Drupal\field\Entity\FieldConfig; use Drupal\simpletest\WebTestBase; use Drupal\field\Entity\FieldStorageConfig; /** * Tests email field functionality. * * @group field */ class EmailFieldTest extends WebTestBase { /** * Modules to enable. * * @var array */ public static $modules = ['node', 'entity_test', 'field_ui']; /** * A field storage to use in this test class. * * @var \Drupal\field\Entity\FieldStorageConfig */ protected $fieldStorage; /** * The field used in this test class. * * @var \Drupal\field\Entity\FieldConfig */ protected $field; protected function setUp() { parent::setUp(); $this->drupalLogin($this->drupalCreateUser([ 'view test entity', 'administer entity_test content', 'administer content types', ])); } /** * Tests email field. */ public function testEmailField() { // Create a field with settings to validate. $field_name = Unicode::strtolower($this->randomMachineName()); $this->fieldStorage = FieldStorageConfig::create([ 'field_name' => $field_name, 'entity_type' => 'entity_test', 'type' => 'email', ]); $this->fieldStorage->save(); $this->field = FieldConfig::create([ 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', ]); $this->field->save(); // Create a form display for the default form mode. entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($field_name, [ 'type' => 'email_default', 'settings' => [ 'placeholder' => 'example@example.com', ], ]) ->save(); // Create a display for the full view mode. entity_get_display('entity_test', 'entity_test', 'full') ->setComponent($field_name, [ 'type' => 'email_mailto', ]) ->save(); // Display creation form. $this->drupalGet('entity_test/add'); $this->assertFieldByName("{$field_name}[0][value]", '', 'Widget found.'); $this->assertRaw('placeholder="example@example.com"'); // Submit a valid email address and ensure it is accepted. $value = 'test@example.com'; $edit = [ "{$field_name}[0][value]" => $value, ]; $this->drupalPostForm(NULL, $edit, t('Save')); preg_match('|entity_test/manage/(\d+)|', $this->url, $match); $id = $match[1]; $this->assertText(t('entity_test @id has been created.', ['@id' => $id])); $this->assertRaw($value); // Verify that a mailto link is displayed. $entity = EntityTest::load($id); $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full'); $content = $display->build($entity); $this->setRawContent(\Drupal::service('renderer')->renderRoot($content)); $this->assertLinkByHref('mailto:test@example.com'); } }