You are here

public function WebformUnitTestCase::test in Webform 7.4

The tests.

File

tests/WebformUnitTestCase.test, line 22

Class

WebformUnitTestCase
Webform module unit tests.

Code

public function test() {
  require_once __DIR__ . '/../webform.module';
  $test = webform_format_email_address('test@example.com', 'John Smith');
  $sample = '"John Smith" <test@example.com>';
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() returns string for single name and email address.');
  $test = webform_format_email_address('default', 'default');
  $sample = '"' . webform_variable_get('webform_default_from_name') . '" <' . webform_variable_get('webform_default_from_address') . '>';
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() handles defaults.');
  $test = webform_format_email_address('test@example.com', NULL);
  $sample = 'test@example.com';
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() handles NULL name.');
  $test = webform_format_email_address('test@example.com', 'John Smith', NULL, NULL, TRUE, FALSE);
  $sample = [
    '"John Smith" <test@example.com>',
  ];
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() returns array for single name and email address.');
  $test = webform_format_email_address([
    'test1@example.com',
    'test2@example.com',
  ], 'John Smith');
  $sample = '"John Smith" <test1@example.com>';
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() returns single string for multiple email addresses by default.');
  $test = webform_format_email_address([
    'test1@example.com',
    'test2@example.com',
  ], [
    'John One',
    'John Two',
  ], NULL, NULL, TRUE, FALSE);
  $sample = [
    '"John One" <test1@example.com>',
    '"John Two" <test2@example.com>',
  ];
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() returns array for multiple email addresses when $single is FALSE.');
  $test = webform_format_email_address([
    'test1@example.com',
    'test2@example.com',
  ], 'John One', NULL, NULL, TRUE, FALSE);
  $sample = [
    '"John One" <test1@example.com>',
    '"John One" <test2@example.com>',
  ];
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() repeats first name when more emails than names provided.');
  $test = webform_format_email_address('test1@example.com, test2@example.com', 'John One', NULL, NULL, TRUE, FALSE);
  $sample = [
    '"John One" <test1@example.com>',
    '"John One" <test2@example.com>',
  ];
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() accepts multiple emails as comma-separated string.');
  $node = (object) [
    'webform' => [
      'components' => [
        1 => [
          'name' => 'Email component',
          'type' => 'textfield',
        ],
        2 => [
          'name' => 'Name component',
          'type' => 'textfield',
        ],
      ],
    ],
  ];
  $test = webform_format_email_address(1, 2, $node);
  $sample = '"Value of Name component" <Value of "Email component">';
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() takes name and email from component names.');
  $submission = (object) [
    'data' => [
      1 => [
        'test@example.com',
      ],
      2 => [
        'John Smith',
      ],
    ],
  ];
  $test = webform_format_email_address(1, 2, $node, $submission);
  $sample = '"John Smith" <test@example.com>';
  $this
    ->assertIdentical($test, $sample, 'webform_format_email_address() takes name and email from submission values.');
}