]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/EmailAddresses/EmailAddressTest.php
Release 6.1.5
[Github/sugarcrm.git] / tests / modules / EmailAddresses / EmailAddressTest.php
1 <?php
2 require_once('modules/EmailAddresses/EmailAddress.php');
3
4 /**
5  * Test cases for php file Emails/emailAddress.php
6  */
7 class EmailAddressTest extends Sugar_PHPUnit_Framework_TestCase
8 {
9         private $emailaddress;
10         private $testEmailAddressString  = 'unitTest@sugarcrm.com';
11
12         public function setUp()
13         {
14                 $this->emailaddress = new EmailAddress();
15         }
16
17         public function tearDown()
18         {
19                 unset($this->emailaddress);
20                 $query = "delete from email_addresses where email_address = '".$this->testEmailAddressString."';";
21         $GLOBALS['db']->query($query);
22         }
23
24         public function testEmailAddress()
25         {
26                 $id = '';
27                 $module = '';
28                 $new_addrs=array();
29                 $primary='';
30                 $replyTo='';
31                 $invalid='';
32                 $optOut='';
33                 $in_workflow=false;
34                 $_REQUEST['_email_widget_id'] = 0;
35                 $_REQUEST['0emailAddress0'] = $this->testEmailAddressString;
36                 $_REQUEST['emailAddressPrimaryFlag'] = '0emailAddress0';
37                 $_REQUEST['emailAddressVerifiedFlag0'] = 'true';
38                 $_REQUEST['emailAddressVerifiedValue0'] = 'unitTest@sugarcrm.com';
39                 $requestVariablesSet = array('0emailAddress0','emailAddressPrimaryFlag','emailAddressVerifiedFlag0','emailAddressVerifiedValue0');
40                 $this->emailaddress->save($id, $module, $new_addrs, $primary, $replyTo, $invalid, $optOut, $in_workflow);
41                 foreach ($requestVariablesSet as $k)
42                   unset($_REQUEST[$k]);
43
44                 $this->assertEquals($this->emailaddress->addresses[0]['email_address'], $this->testEmailAddressString);
45                 $this->assertEquals($this->emailaddress->addresses[0]['primary_address'], 1);
46         }
47
48         public function testSaveEmailAddressUsingSugarbeanSave()
49         {
50             $this->emailaddress->email_address = $this->testEmailAddressString;
51             $this->emailaddress->opt_out = '1';
52             $this->emailaddress->save();
53
54             $this->assertTrue(!empty($this->emailaddress->id));
55             $this->assertEquals(
56                 $this->emailaddress->id,
57                 $GLOBALS['db']->getOne("SELECT id FROM email_addresses WHERE id = '{$this->emailaddress->id}' AND email_address = '{$this->testEmailAddressString}' and opt_out = '1'"),
58                 'Email Address record not added'
59                 );
60         }
61
62         public function getEmails()
63         {
64             return array(
65                 array("test@sugarcrm.com", "", "test@sugarcrm.com"),
66                 array("John Doe <test@sugarcrm.com>", "John Doe", "test@sugarcrm.com"),
67                 array("\"John Doe\" <test@sugarcrm.com>", "John Doe", "test@sugarcrm.com"),
68                 array("\"John Doe\" <test@sugarcrm.com>", "John Doe", "test@sugarcrm.com"),
69                 array("\"John Doe (<doe>)\" <test@sugarcrm.com>", "John Doe (doe)", "test@sugarcrm.com"),
70                 // bad ones
71                 array("\"John Doe (<doe>)\"", "John Doe (doe)", ""),
72                 array("John Doe <vlha>", "John Doe vlha", ""),
73                 array("<script>alert(1)</script>", "scriptalert(1)/script", ""),
74                 array("Test <test@test>", "Test test@test", ""),
75                 );
76         }
77
78         /**
79          * @dataProvider getEmails
80          * @param string $addr
81          * @param string $name
82          * @param string $email
83          */
84
85         public function testSplitEmail($addr, $name, $email)
86         {
87             $parts = $this->emailaddress->splitEmailAddress($addr);
88             $this->assertEquals($name, $parts['name']);
89             $this->assertEquals($email, $parts['email']);
90         }
91 }