Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
EmailMessageSendErrorTest.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
38  {
39  public static function setUpBeforeClass()
40  {
41  parent::setUpBeforeClass();
42  SecurityTestHelper::createSuperAdmin();
43  $billy = UserTestHelper::createBasicUser('billy');
44  EmailBox::resolveAndGetByName(EmailBox::NOTIFICATIONS_NAME);
45  }
46 
52  {
53  $super = User::getByUsername('super');
54  Yii::app()->user->userModel = $super;
55  $billy = User::getByUsername('billy');
56  $this->assertEquals(0, EmailMessage::getCount());
57 
58  $emailMessage = new EmailMessage();
59  $emailMessage->owner = BaseControlUserConfigUtil::getUserToRunAs();
60  $emailMessage->subject = 'My First Email';
61  //Set sender, and recipient, and content
62  $emailContent = new EmailMessageContent();
63  $emailContent->textContent = 'My First Message';
64  $emailContent->htmlContent = 'Some fake HTML content';
65  $emailMessage->content = $emailContent;
66  //Sending from the system, does not have a 'person'.
67  $sender = new EmailMessageSender();
68  $sender->fromAddress = 'system@somewhere.com';
69  $sender->fromName = 'Zurmo System';
70  $emailMessage->sender = $sender;
71  //Recipient is billy.
72  $recipient = new EmailMessageRecipient();
73  $recipient->toAddress = 'billy@fakeemail.com';
74  $recipient->toName = 'Billy James';
75  $recipient->type = EmailMessageRecipient::TYPE_TO;
76  $recipient->personsOrAccounts->add($billy);
77  $emailMessage->recipients->add($recipient);
78 
79  //At this point the message is in no folder
80  $this->assertTrue($emailMessage->folder->id < 0);
81 
82  $box = EmailBox::resolveAndGetByName(EmailBox::NOTIFICATIONS_NAME);
83  $emailMessage->folder = EmailFolder::getByBoxAndType($box, EmailFolder::TYPE_DRAFT);
84 
85  //Save, at this point the email should be in the draft folder
86  $saved = $emailMessage->save();
87  $this->assertTrue($saved);
88  $this->assertTrue($emailMessage->folder->id > 0);
89 
90  $this->assertEquals(0, EmailMessageSendError::getCount());
91  $emailMessageSendError = new EmailMessageSendError();
92  $data = array();
93  $data['message'] = 'error message';
94  $emailMessageSendError->serializedData = serialize($data);
95  $emailMessage->folder = EmailFolder::getByBoxAndType($emailMessage->folder->emailBox,
96  EmailFolder::TYPE_OUTBOX_ERROR);
97  $emailMessage->error = $emailMessageSendError;
98  $saved = $emailMessage->save();
99  $this->assertTrue($saved);
100  $this->assertEquals(1, EmailMessageSendError::getCount());
101 
102  //Now swap the error with a new one
103  $emailMessageId = $emailMessage->id;
104  $emailMessage->forget();
105  $emailMessage = EmailMessage::getById($emailMessageId);
106  $emailMessageSendError = new EmailMessageSendError();
107  $data = array();
108  $data['message'] = 'error message 2';
109  $emailMessageSendError->serializedData = serialize($data);
110  $emailMessage->error = $emailMessageSendError;
111  $saved = $emailMessage->save();
112  $this->assertTrue($saved);
113  $this->assertEquals(1, EmailMessageSendError::getCount());
114  }
115  }
116 ?>
static getByUsername($username)
Definition: User.php:49
static getUserToRunAs($createIfMissing=true)
static getCount(RedBeanModelJoinTablesQueryAdapter $joinTablesAdapter=null, $where=null, $modelClassName=null, $selectDistinct=false)
static getById($id, $modelClassName=null)
Generated on Thu Jul 9 2020 07:10:32
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.