t('Webform unit tests'), 'description' => t('Unit tests for Webform functions.'), 'group' => t('Webform'), ); } /** * The tests. */ public function test() { require_once __DIR__ . '/../webform.module'; $test = webform_format_email_address('test@example.com', 'John Smith'); $sample = '"John Smith" '; $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" ']; $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" '; $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" ', '"John Two" ']; $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" ', '"John One" ']; $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" ', '"John One" ']; $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" '; $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" '; $this->assertIdentical($test, $sample, 'webform_format_email_address() takes name and email from submission values.'); } }