function TelephoneFieldTest::testTelephoneFormatter

Same name and namespace in other branches
  1. 9 core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php \Drupal\Tests\telephone\Functional\TelephoneFieldTest::testTelephoneFormatter()
  2. 8.9.x core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php \Drupal\Tests\telephone\Functional\TelephoneFieldTest::testTelephoneFormatter()
  3. 11.x core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php \Drupal\Tests\telephone\Functional\TelephoneFieldTest::testTelephoneFormatter()

Tests the telephone formatter.

@covers \Drupal\telephone\Plugin\Field\FieldFormatter\TelephoneLinkFormatter::viewElements

File

core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php, line 102

Class

TelephoneFieldTest
Tests the creation of telephone fields.

Namespace

Drupal\Tests\telephone\Functional

Code

public function testTelephoneFormatter() : void {
  $phone_numbers = [
    'standard phone number' => [
      '123456789',
      '123456789',
    ],
    'whitespace is removed' => [
      '1234 56789',
      '123456789',
    ],
    'parse_url(0) return FALSE workaround' => [
      '0',
      '0-',
    ],
    'php bug 70588 workaround - lower edge check' => [
      '1',
      '1-',
    ],
    'php bug 70588 workaround' => [
      '123',
      '1-23',
    ],
    'php bug 70588 workaround - with whitespace removal' => [
      '1 2 3 4 5',
      '1-2345',
    ],
    'php bug 70588 workaround - upper edge check' => [
      '65534',
      '6-5534',
    ],
    'php bug 70588 workaround - edge check' => [
      '65535',
      '6-5535',
    ],
    'php bug 70588 workaround - invalid port number - lower edge check' => [
      '65536',
      '6-5536',
    ],
    'php bug 70588 workaround - invalid port number - upper edge check' => [
      '99999',
      '9-9999',
    ],
    'lowest number not affected by php bug 70588' => [
      '100000',
      '100000',
    ],
  ];
  foreach ($phone_numbers as $data) {
    [
      $input,
      $expected,
    ] = $data;
    // Test basic entry of telephone field.
    $edit = [
      'title[0][value]' => $this->randomMachineName(),
      'field_telephone[0][value]' => $input,
    ];
    $this->drupalGet('node/add/article');
    $this->submitForm($edit, 'Save');
    $this->assertSession()
      ->responseContains('<a href="tel:' . $expected . '">');
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.