annotate core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php @ 15:e200cb7efeb3

Update Drupal core to 8.5.3 via Composer
author Chris Cannam
date Thu, 26 Apr 2018 11:26:54 +0100
parents 4c8ae668cc8c
children 129ea1e6d783
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\telephone\Functional;
Chris@0 4
Chris@0 5 use Drupal\field\Entity\FieldConfig;
Chris@0 6 use Drupal\Tests\BrowserTestBase;
Chris@0 7 use Drupal\field\Entity\FieldStorageConfig;
Chris@0 8
Chris@0 9 /**
Chris@0 10 * Tests the creation of telephone fields.
Chris@0 11 *
Chris@0 12 * @group telephone
Chris@0 13 */
Chris@0 14 class TelephoneFieldTest extends BrowserTestBase {
Chris@0 15
Chris@0 16 /**
Chris@0 17 * Modules to enable.
Chris@0 18 *
Chris@0 19 * @var array
Chris@0 20 */
Chris@0 21 public static $modules = [
Chris@0 22 'field',
Chris@0 23 'node',
Chris@0 24 'telephone'
Chris@0 25 ];
Chris@0 26
Chris@0 27 /**
Chris@0 28 * A user with permission to create articles.
Chris@0 29 *
Chris@0 30 * @var \Drupal\user\UserInterface
Chris@0 31 */
Chris@0 32 protected $webUser;
Chris@0 33
Chris@0 34 protected function setUp() {
Chris@0 35 parent::setUp();
Chris@0 36
Chris@0 37 $this->drupalCreateContentType(['type' => 'article']);
Chris@0 38 $this->webUser = $this->drupalCreateUser(['create article content', 'edit own article content']);
Chris@0 39 $this->drupalLogin($this->webUser);
Chris@0 40 }
Chris@0 41
Chris@0 42 // Test fields.
Chris@0 43
Chris@0 44 /**
Chris@0 45 * Helper function for testTelephoneField().
Chris@0 46 */
Chris@0 47 public function testTelephoneField() {
Chris@0 48
Chris@0 49 // Add the telephone field to the article content type.
Chris@0 50 FieldStorageConfig::create([
Chris@0 51 'field_name' => 'field_telephone',
Chris@0 52 'entity_type' => 'node',
Chris@0 53 'type' => 'telephone',
Chris@0 54 ])->save();
Chris@0 55 FieldConfig::create([
Chris@0 56 'field_name' => 'field_telephone',
Chris@0 57 'label' => 'Telephone Number',
Chris@0 58 'entity_type' => 'node',
Chris@0 59 'bundle' => 'article',
Chris@0 60 ])->save();
Chris@0 61
Chris@0 62 entity_get_form_display('node', 'article', 'default')
Chris@0 63 ->setComponent('field_telephone', [
Chris@0 64 'type' => 'telephone_default',
Chris@0 65 'settings' => [
Chris@0 66 'placeholder' => '123-456-7890',
Chris@0 67 ],
Chris@0 68 ])
Chris@0 69 ->save();
Chris@0 70
Chris@0 71 entity_get_display('node', 'article', 'default')
Chris@0 72 ->setComponent('field_telephone', [
Chris@0 73 'type' => 'telephone_link',
Chris@0 74 'weight' => 1,
Chris@0 75 ])
Chris@0 76 ->save();
Chris@0 77
Chris@0 78 // Display creation form.
Chris@0 79 $this->drupalGet('node/add/article');
Chris@0 80 $this->assertFieldByName("field_telephone[0][value]", '', 'Widget found.');
Chris@0 81 $this->assertRaw('placeholder="123-456-7890"');
Chris@0 82
Chris@0 83 // Test basic entry of telephone field.
Chris@0 84 $edit = [
Chris@0 85 'title[0][value]' => $this->randomMachineName(),
Chris@0 86 'field_telephone[0][value]' => "123456789",
Chris@0 87 ];
Chris@0 88
Chris@0 89 $this->drupalPostForm(NULL, $edit, t('Save'));
Chris@0 90 $this->assertRaw('<a href="tel:123456789">', 'A telephone link is provided on the article node page.');
Chris@0 91
Chris@0 92 // Add number with a space in it. Need to ensure it is stripped on output.
Chris@0 93 $edit = [
Chris@0 94 'title[0][value]' => $this->randomMachineName(),
Chris@0 95 'field_telephone[0][value]' => "1234 56789",
Chris@0 96 ];
Chris@0 97
Chris@0 98 $this->drupalPostForm('node/add/article', $edit, t('Save'));
Chris@0 99 $this->assertRaw('<a href="tel:123456789">', 'Telephone link is output with whitespace removed.');
Chris@0 100 }
Chris@0 101
Chris@0 102 }