Mercurial > hg > isophonics-drupal-site
diff core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line diff
--- a/core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php Tue Jul 10 15:07:59 2018 +0100 +++ b/core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php Thu Feb 28 13:21:36 2019 +0000 @@ -21,7 +21,7 @@ public static $modules = [ 'field', 'node', - 'telephone' + 'telephone', ]; /** @@ -31,20 +31,15 @@ */ protected $webUser; + /** + * {@inheritdoc} + */ protected function setUp() { parent::setUp(); $this->drupalCreateContentType(['type' => 'article']); $this->webUser = $this->drupalCreateUser(['create article content', 'edit own article content']); $this->drupalLogin($this->webUser); - } - - // Test fields. - - /** - * Helper function for testTelephoneField(). - */ - public function testTelephoneField() { // Add the telephone field to the article content type. FieldStorageConfig::create([ @@ -74,29 +69,54 @@ 'weight' => 1, ]) ->save(); + } - // Display creation form. + /** + * Test to confirm the widget is setup. + * + * @covers \Drupal\telephone\Plugin\Field\FieldWidget\TelephoneDefaultWidget::formElement + */ + public function testTelephoneWidget() { $this->drupalGet('node/add/article'); $this->assertFieldByName("field_telephone[0][value]", '', 'Widget found.'); $this->assertRaw('placeholder="123-456-7890"'); + } + /** + * Test the telephone formatter. + * + * @covers \Drupal\telephone\Plugin\Field\FieldFormatter\TelephoneLinkFormatter::viewElements + * + * @dataProvider providerPhoneNumbers + */ + public function testTelephoneFormatter($input, $expected) { // Test basic entry of telephone field. $edit = [ 'title[0][value]' => $this->randomMachineName(), - 'field_telephone[0][value]' => "123456789", - ]; - - $this->drupalPostForm(NULL, $edit, t('Save')); - $this->assertRaw('<a href="tel:123456789">', 'A telephone link is provided on the article node page.'); - - // Add number with a space in it. Need to ensure it is stripped on output. - $edit = [ - 'title[0][value]' => $this->randomMachineName(), - 'field_telephone[0][value]' => "1234 56789", + 'field_telephone[0][value]' => $input, ]; $this->drupalPostForm('node/add/article', $edit, t('Save')); - $this->assertRaw('<a href="tel:123456789">', 'Telephone link is output with whitespace removed.'); + $this->assertRaw('<a href="tel:' . $expected . '">'); + } + + /** + * Provides the phone numbers to check and expected results. + */ + public function providerPhoneNumbers() { + return [ + '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'], + ]; } }