]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Emails/EmailTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / modules / Emails / EmailTest.php
1 <?php 
2 require_once('modules/Emails/Email.php');
3
4 /**
5  * Test cases for Bug 30591
6  */
7 class EmailTest extends Sugar_PHPUnit_Framework_TestCase
8 {
9         private $email;
10         
11         public function setUp()
12         {
13             global $current_user;
14                 
15             $current_user = SugarTestUserUtilities::createAnonymousUser();
16             $this->email = new Email();
17             $this->email->email2init();
18         }
19         
20         public function tearDown()
21         {
22                 unset($this->email);
23                 SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
24                 unset($GLOBALS['current_user']);
25         }
26         
27         public function testSafeAttachmentName ()
28         {
29                 $extArray[] = '0.py';
30                 $extArray[] = '1.php';
31                 $extArray[] = '2.php3';
32                 $extArray[] = '3.php4';
33                 $extArray[] = '4.php5';
34                 $extArray[] = '5.js';
35                 $extArray[] = '6.htm';
36                 $extArray[] = '7.html';
37                 $extArray[] = '8.txt';
38                 $extArray[] = '9.doc';
39                 $extArray[] = '10.xls';
40                 $extArray[] = '11.pdf';
41                 $extArray[] = '12';
42
43                 for ($i = 0; $i < count($extArray); $i++) {
44                         $result = $this->email->safeAttachmentName($extArray[$i]);
45                         if ($i < 8) {
46                                 $this->assertEquals($result, true);
47                         } else {
48                                 $this->assertEquals($result, false);
49                         }
50                 }
51         }
52         
53         public function testEmail2ParseAddresses()
54         {
55                 $emailDisplayName[] = '';
56                 $emailDisplayName[] = 'Shine Ye';
57                 $emailDisplayName[] = 'Roger,Smith';
58                 $emailAddress[] = 'masonhu@sugarcrm.com';
59                 $emailAddress[] = 'xye@sugarcrm.com';
60                 $emailAddress[] = 'roger@sugarcrm.com';
61                 for ($j = 0; $j < count($emailDisplayName); $j++)
62                 {
63                         if ($j < 1)
64                                 $emailString[] = $emailDisplayName[$j].$emailAddress[$j];
65                         else
66                                 $emailString[] = $emailDisplayName[$j].'<'.$emailAddress[$j].'>';
67                         
68                 }
69                 $emailAddressString = implode(', ', $emailString);
70                 $result = $this->email->email2ParseAddresses($emailAddressString);
71                 $onlyEmailResult = $this->email->email2ParseAddressesForAddressesOnly($emailAddressString);
72                 for ($v = 0; $v < count($result); $v++)
73                 {
74                         $this->assertEquals($result[$v]['display'], $emailDisplayName[$v]);
75                         $this->assertEquals($result[$v]['email'], $emailAddress[$v]);
76                         $this->asserteQuals($onlyEmailResult[$v], $emailAddress[$v]);
77                 }
78         }
79         
80         public function testDecodeDuringSend()
81         {
82                 $testString = 'Replace sugarLessThan and sugarGreaterThan with &lt; and &gt;';
83                 $expectedResult = 'Replace &lt; and &gt; with &lt; and &gt;';
84                 $resultString = $this->email->decodeDuringSend($testString);
85                 $this->asserteQuals($resultString, $expectedResult);
86         }
87 }
88 ?>