Chris@17
|
1 <?php
|
Chris@17
|
2
|
Chris@17
|
3 namespace Drupal\Tests\Component\Utility;
|
Chris@17
|
4
|
Chris@17
|
5 use Drupal\Component\Utility\Mail;
|
Chris@17
|
6 use PHPUnit\Framework\TestCase;
|
Chris@17
|
7
|
Chris@17
|
8 /**
|
Chris@17
|
9 * Test mail helpers implemented in Mail component.
|
Chris@17
|
10 *
|
Chris@17
|
11 * @group Utility
|
Chris@17
|
12 *
|
Chris@17
|
13 * @coversDefaultClass \Drupal\Component\Utility\Mail
|
Chris@17
|
14 */
|
Chris@17
|
15 class MailTest extends TestCase {
|
Chris@17
|
16
|
Chris@17
|
17 /**
|
Chris@17
|
18 * Tests RFC-2822 'display-name' formatter.
|
Chris@17
|
19 *
|
Chris@17
|
20 * @dataProvider providerTestDisplayName
|
Chris@17
|
21 * @covers ::formatDisplayName
|
Chris@17
|
22 */
|
Chris@17
|
23 public function testFormatDisplayName($string, $safe_display_name) {
|
Chris@17
|
24 $this->assertEquals($safe_display_name, Mail::formatDisplayName($string));
|
Chris@17
|
25 }
|
Chris@17
|
26
|
Chris@17
|
27 /**
|
Chris@17
|
28 * Data provider for testFormatDisplayName().
|
Chris@17
|
29 *
|
Chris@17
|
30 * @see testFormatDisplayName()
|
Chris@17
|
31 *
|
Chris@17
|
32 * @return array
|
Chris@17
|
33 * An array containing a string and its 'display-name' safe value.
|
Chris@17
|
34 */
|
Chris@17
|
35 public function providerTestDisplayName() {
|
Chris@17
|
36 return [
|
Chris@17
|
37 // Simple ASCII characters.
|
Chris@17
|
38 ['Test site', 'Test site'],
|
Chris@17
|
39 // ASCII with html entity.
|
Chris@17
|
40 ['Test & site', 'Test & site'],
|
Chris@17
|
41 // Non-ASCII characters.
|
Chris@17
|
42 ['Tést site', '=?UTF-8?B?VMOpc3Qgc2l0ZQ==?='],
|
Chris@17
|
43 // Non-ASCII with special characters.
|
Chris@17
|
44 ['Tést; site', '=?UTF-8?B?VMOpc3Q7IHNpdGU=?='],
|
Chris@17
|
45 // Non-ASCII with html entity.
|
Chris@17
|
46 ['Tést; site', '=?UTF-8?B?VMOpc3Q7IHNpdGU=?='],
|
Chris@17
|
47 // ASCII with special characters.
|
Chris@17
|
48 ['Test; site', '"Test; site"'],
|
Chris@17
|
49 // ASCII with special characters as html entity.
|
Chris@17
|
50 ['Test < site', '"Test < site"'],
|
Chris@17
|
51 // ASCII with special characters and '\'.
|
Chris@17
|
52 ['Test; \ "site"', '"Test; \\\\ \"site\""'],
|
Chris@17
|
53 // String already RFC-2822 compliant.
|
Chris@17
|
54 ['"Test; site"', '"Test; site"'],
|
Chris@17
|
55 // String already RFC-2822 compliant.
|
Chris@17
|
56 ['"Test; \\\\ \"site\""', '"Test; \\\\ \"site\""'],
|
Chris@17
|
57 ];
|
Chris@17
|
58 }
|
Chris@17
|
59
|
Chris@17
|
60 }
|